我在SO上看到了this的问题,并想知道在实时示例中实际可以使用这种代码的位置。
struct a
{
static struct a b;
};
int main()
{
a::b;
return 0;
}
a::b;
还有什么意义
感谢您的投入。
答案 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;
}