C++Singleton未定义对的引用

C++ Singleton undefined reference to

本文关键字:引用 未定义 C++Singleton      更新时间:2023-10-16

我是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

myclass.cpp

#include "myclass.h"
Myclass* Myclass::getInstance() {
    if (!m_instance) {
        m_instance = new Myclass;
    }
    return m_instance;
}

编译器无法编译。我在m_instance:的所有3行上都出现了以下错误

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

您忘记添加:

Myclass* Myclass::m_instance = 0; // or NULL, or nullptr in c++11

就在CCD_ 2下。