C++ 单例未定义引用

问题描述 投票:0回答:1

我是 C++ 新手,正在尝试了解 C++ 中的单例模式。

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;
}

编译器无法编译。我收到以下错误,所有 3 行都带有

m_instance
:

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

c++ qt singleton
1个回答
30
投票

您忘记添加:

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

就在

#include "myclass.h"
下方。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.