我刚刚遇到以下代码:
#include <iostream>
static class Foo
{
public:
Foo()
{
std::cout << "HELLO" << std::endl;
}
void foo()
{
std::cout << "in foo" << std::endl;
}
}
blah;
int main()
{
std::cout << "exiting" << std::endl;
blah.foo();
return 0;
}
我以前没有见过上面定义变量的方法——类定义是与变量定义内联完成的。它让我想起了 Java 中的匿名类。这叫什么,它在 C++ 标准中吗?
谢谢
塔拉斯
最佳答案
定义一个class
(或struct
,完全等价,除了默认是public
而不是private
) 并声明其类型的变量(或指向此类变量的指针等)——这在 C 中是可以的(使用 struct
,但正如我已经提到的 C++ 的 class
,除了公共(public)与私有(private)之外,与 struct
) 相同,C++ 主要保持与 (ISO-1989) C 的向上兼容性。从未听说过它被称为任何特殊名称。
关于C++ 内联类定义和对象初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2384558/