我刚刚遇到以下代码:
#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 ++标准?
由于
塔拉斯
答案 0 :(得分:3)
定义class
(或struct
,完全等效,除了默认值为public
而不是private
)并声明其类型的变量(或者指向这样一个变量的指针等) - 在C中没有问题(struct
,但正如我已经提到过C ++的class
,除了公共与私有之外,与{{1}相同}}和C ++主要保持与(ISO-1989)C的向上兼容性。从未听过它被任何特殊名称调用。