【问题标题】:C++ Singleton undefined reference toC++ Singleton 未定义引用
【发布时间】:2013-07-22 23:28:07
【问题描述】:

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

编译器无法编译。在m_instance 的所有 3 行中,我收到以下错误:

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

【问题讨论】:

  • 其实还有一个更好的方法来实现Singleton。检查this

标签: c++ qt compiler-construction singleton


【解决方案1】:

你忘了添加:

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

就在#include "myclass.h" 下方。

【讨论】:

    猜你喜欢
    • 2013-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    • 2013-03-21
    • 2013-12-21
    • 2015-02-14
    相关资源
    最近更新 更多