单文件类的多文件访问

时间:2015-12-07 10:59:10

标签: c++ singleton global-variables multifile

我有一个单身人士课程。

在A.h

class single
{
    public:
        static single *Instance;
        static single* getInstance()
        { if(!Instance) Instance = new single; 
          return Instance;
        }
        void hello () { cout<<"Hello"; }
    private: single(){ }
}

在A.cpp

single *single::Instance = 0;
std::auto_ptr <single> SINGLE_OBJ (single::getInstance());

在B.cpp

#include "A.h"

SINGLE_OBJ->hello();

我收到以下错误: SINGLE_OBJ未在此范围内宣布。

1 个答案:

答案 0 :(得分:2)

要在SINGLE_OBJ中显示B.cpp,您应该在A.h.中声明,即:

extern std::auto_ptr <single> SINGLE_OBJ;

另外,为什么你使用std::auto_ptr,不推荐使用它 - 你应该切换到std::unique_ptr