c++ - ‘*’ token 之前的预期初始值设定项

标签 c++ design-patterns

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

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,而不是在定义上。

关于c++ - ‘*’ token 之前的预期初始值设定项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14721362/

相关文章:

c# - 使用 C# 在生成器设计模式中集成序列化和反序列化

c++ - 是否需要分离 pthread 以防止内存泄漏?

c++ - 使用带有 GIT 和 Visual Studio 2005 的分支防止完全重建

Javascript 链接和传递参数

python - 如何根据子列表 [0] 中的模式加速划分子列表列表的过程?

c# - 用具体类型覆盖抽象方法

java - 中介者设计模式: Why do classes have to inform mediator of their behaviours?

c++ - Qt5 支持的应用程序使用 Qt4-libs 并失败。如何避免这种情况?

c++ - 指向多维静态分配数组部分的指针的语法

c++ - 钩子(Hook)函数后调用原函数