“*”标记之前应为初始值设定项

expected initializer before ‘*’ token

本文关键字:      更新时间:2023-10-16

我正在尝试实现设计模式书中的代码。我得到以下错误:

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;
相关文章:
  • 没有找到相关文章