1
我刚刚碰到下面的代码:C++内联类的定义和对象初始化
#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;
}
我还没有看到definining变量的上述方法之前 - 类定义与变量进行在线定义。它让我想起了Java中的匿名类。这是什么叫的,它是在C++标准?
由于
塔拉斯
是否有必要为类在这种情况下,被命名为(即,被匿名类用C允许++)?而且,既然它被命名了,你还可以创建其他'Foo'对象吗? – 2010-03-05 04:38:11
...即将与ISO C99兼容。不过,我应该补充一点,即使它是合法的,这种用法在习惯C++中也很少见。 –
@STingRaySC:没有,匿名类都很好,是的,你可以创建其他人。事实上,即使它是匿名的,也可以创建两个:'struct {...} foo1,foo2;'。 – Potatoswatter