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