C++ 实时使用类内声明类的静态成员

C++ 实时使用类内声明类的静态成员,c++,static-members,C++,Static Members,我看到了这样的问题,并想知道在实时示例中这种代码实际上可以在哪里使用 struct a { static struct a b; }; int main() { a::b; return 0; } 还有a::b的意义是什么 谢谢你的意见 这样的代码可以用于实现单例模式。这里,声明类型a的一个实例;如果其他实例被禁止,那么它就是singleton。然而,在实践中,我记得,它们通常使用较少混淆的语法 而且,对于a::b,它没有任何用处。它只显示实例的名称。一个更有用的

我看到了这样的问题,并想知道在实时示例中这种代码实际上可以在哪里使用

struct a
{
    static struct a b;
};


int main()
{
    a::b;

    return 0;
}
还有
a::b的意义是什么

谢谢你的意见

这样的代码可以用于实现单例模式。这里,声明类型
a
的一个实例;如果其他实例被禁止,那么它就是singleton。然而,在实践中,我记得,它们通常使用较少混淆的语法

而且,对于
a::b
,它没有任何用处。它只显示实例的名称。一个更有用的例子是:

struct a
{
    static struct a b;
    int data;
};

a a::b = {9};

int main()
{
    int stuff = a::b.data;
    printf("%d\n", stuff);

    return 0;
}

可以实例化的实例数限制为一个的类称为单例类。因此,在任何给定的时间,只能存在一个实例,不能再存在。我们可以通过静态方法实现这一点。我不明白创建自己类的静态对象如何帮助实现that@CppLearner链接器可以将
a::b
的定义放置在预定义的地址(这与对硬件的内存映射访问有关)。谢谢,我刚刚从[link]看到了下面的代码,这证实了您的解释<代码>类MySingleton{public:static MySingleton&getInstance(){static MySingleton instance;return instance;}private:MySingleton();~MySingleton();}