“*”标记之前应为初始值设定项
expected initializer before ‘*’ token
我正在尝试实现设计模式书中的代码。我得到以下错误:
expected initializer before ‘*’ token
对于这条线路:
static Singleton *Singleton::itsInstance = 0;
这是完整的代码。我正在使用g++4.2.1来尝试编译这个。
class Singleton {
public:
static Singleton *instance();
protected:
Singleton();
private:
static Singleton *itsInstance;
}
static Singleton *Singleton::itsInstance = 0;
Singleton *Singleton::instance()
{
if (!itsInstance)
{
itsInstance = new Singleton;
}
return itsInstance;
}
有什么想法吗?
class Singleton {
};
^^^
这个!以及
static Singleton *Singleton::itsInstance = 0;
替换为:
Singleton *Singleton::itsInstance = 0;
您只需要在声明上使用static
,而不需要在定义上使用。
类定义后缺少分号,并且不需要static
。
static Singleton *Singleton::itsInstance = 0;
应该是
Singleton *Singleton::itsInstance = 0;
相关文章:
- 没有找到相关文章