我知道你不能在不使用构造函数的情况下直接在类中初始化成员变量(静态常量除外)。
但只是想知道这背后的原因是什么。下面是代码片段
如果有任何机构可以提供帮助
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();
}
Run Code Online (Sandbox Code Playgroud)
其实你可以。但仅限于 C++11。
以下是有效的 C++11 代码:
class A
{
int x = 100; //valid in c++11
};
Run Code Online (Sandbox Code Playgroud)
您的编译器可能不支持这一点,但 GCC 4.8.0编译得很好。
希望有帮助。
| 归档时间: |
|
| 查看次数: |
2937 次 |
| 最近记录: |