我知道你不能在不使用構造函數的情況下直接在類內初始化成員變量(除了靜態常量)。爲什麼你不能初始化類中的變量在c + +中
但只是想知道背後的原因是什麼。下面 是代碼片段
,如果任何機構可以幫助
class a
{
int c=5;
// giving error error C2864: 'a::c' : only static const integral data members can be
// initialized within a class
int b;
public:
a():c(1),b(2){}
void h()
{
printf("%d,%d",c,b);
}
};
int main()
{
a l;
l.h();
getchar();
}
我的意思是,不同的語言有不同的限制...不知道你要找什麼樣的答案。在C++中,實例特定的初始化必須位於構造函數或其初始化列表中。 – jedwards
可能的重複[爲什麼我不能在類中有一個非整型靜態const成員?](http://stackoverflow.com/questions/370283/why-cant-i-have-a-non-integral- static-const-member-in-a-class) –
@jedwards我想知道爲什麼不允許直接初始化實例。 – hims15