C++ Singleton未定义引用

Nik*_*las 5 c++ compiler-construction singleton qt

我是C++的新手,并试图理解C++中的Singleton模式.

myclass.h

#ifndef MYCLASS_H
#define MYCLASS_H

class Myclass {
    public:
        static Myclass* getInstance();

    private:
        Myclass(){}
        Myclass(Myclass const&){}
        Myclass& operator=(Myclass const&){}
        static Myclass* m_instance;
};

#endif // MYCLASS_H
Run Code Online (Sandbox Code Playgroud)

myclass.cpp

#include "myclass.h"

Myclass* Myclass::getInstance() {
    if (!m_instance) {
        m_instance = new Myclass;
    }

    return m_instance;
}
Run Code Online (Sandbox Code Playgroud)

编译器无法编译.我在所有3行上得到以下错误m_instance:

错误:未定义引用`Myclass :: m_instance'

Bor*_*der 15

你忘了添加:

Myclass* Myclass::m_instance = 0; // or NULL, or nullptr in c++11
Run Code Online (Sandbox Code Playgroud)

正确的#include "myclass.h".