C++ 构造函数问题
代码如下:使用构造函数初始化列表没问题
#include <iostream>
using namespace std;
class NoDefault{
int i;
public:
int geti(void){
return i;
}
NoDefault(int i1 = 0):i(i1){}
};
int main(void){
NoDefault nd1;
nd1 = 6;
cout << nd1.geti();
return 0;
}
可是当我把
NoDefault(int i1 = 0):i(i1){}
换成
NoDefault(int i1 = 0):{i = i1;}
就会报错,这是为什么?
你这种语法 我还真是没见过···
我觉得可能是你既然用了: 那编译器就等着你给静态变量或啥的赋值,可是你没有···
我也不确定。 n0noper 发表于 2016-5-12 18:25
你这种语法 我还真是没见过···
我觉得可能是你既然用了: 那编译器就等着你给静态变量或啥的赋值, ...
然而我 用了 : 时编译通过,没用: 时反而报错,好奇怪啊 倾天 发表于 2016-5-12 18:30
然而我 用了 : 时编译通过,没用: 时反而报错,好奇怪啊
···
我刚试了一下,VC6下,正常。 你再试试,有问题截个图,大家再讨论。
n0noper 发表于 2016-5-12 18:39
···
我刚试了一下,VC6下,正常。 你再试试,有问题截个图,大家再讨论。
诶,我去,VC竟然对了,原来不是代码问题,谢谢啦{:5_109:}{:10_282:}
页:
[1]