0

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

struct a
{
    static struct a b;
};


int main()
{
    a::b;

    return 0;
}

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

4

1 回答 1

0

这样的代码可以用于单例模式的实现。在这里,声明了一个类型的实例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;
}
于 2012-04-23T17:06:41.733 回答