在下面的代码中,我收到一条错误消息“没有 默认构造函数“。这就是为什么我不能使用制服 初始化
当我创建一个默认构造函数时,我收到了关于大括号的错误。
请突出显示有关此程序和统一初始化程序的问题。
我正在使用VS 2012和C ++
class Circle {
double radius;
public:
Circle(double r) { radius = r; }
double circum() {return 2*radius*3.14159265;}
Circle () {
cout<<"ALI \n ";
}
};
int main () {
Circle baz {30.0}; // uniform init.
Circle qux{};
cout << "foo's circumference: " << baz.circum() << '\n';
cout<<endl;
return 0;
}
答案 0 :(得分:4)
答案 1 :(得分:1)
Visual C ++ 2012的发布版本不支持此功能。
预览(CTP)确实对初始化程序列表有部分支持:http://www.microsoft.com/en-us/download/details.aspx?id=35515。但是这个特殊的代码甚至在该预览中也不起作用,因为STL还没有更新为使用初始化列表。 这将是可行的Visual Studio 2013。 我希望它可以提供帮助。