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

时间:2012-04-23 16:51:06

标签: c++ static-members

我在SO上看到了this的问题,并想知道在实时示例中实际可以使用这种代码的位置。

struct a
{
    static struct a b;
};


int main()
{
    a::b;

    return 0;
}

a::b;还有什么意义 感谢您的投入。

1 个答案:

答案 0 :(得分:0)

此类代码可用于实现Singleton模式。这里,声明了a类型的一个实例;如果其他实例被某种方式禁止,那就是单身人士。然而,在实践中,我记得,他们通常使用较少混淆的语法。

而且,对于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;
}