我有一个单身人士课程。
在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未在此范围内宣布。
答案 0 :(得分:2)
要在SINGLE_OBJ
中显示B.cpp
,您应该在A.h.
中声明,即:
extern std::auto_ptr <single> SINGLE_OBJ;
另外,为什么你使用std::auto_ptr
,不推荐使用它 - 你应该切换到std::unique_ptr
。