我的课程有三个字段,如
classA
{
classA(float x, float y, float z) { _x = x; _y = y; _z = z;}
float _x,
float _y,
float _z
}
我曾经使用ClassA a(1.0,2.0,3.0)
构建对象,现在我发现我可以使用
Class A = {1.0, 20.0, 3.0};
这是C ++ 11中的新功能吗?
答案 0 :(得分:1)
是的,它被称为Uniform Initialization
,它建立在初始化列表上,并尝试缓解最棘手的解析错误。基本上它是一种可以在任何对象上使用的初始化语法。
您可以在Wikipedia上了解更多相关信息。
答案 1 :(得分:1)
是的,C ++ 11在初始化时扩展了“{}”的使用,并且也可以省略“=”。 以下是一些例子:
int x={5};
double y {2.75};
short quar[3] {4,3,2};
int *p= new int [3] {2,3,5}; //c++ 11
ClassName a(3,15,6);//old style
ClassName a{3,15,6};//C++ 11
ClassName a={3,15,6};//C++ 11
vector<int> a3{4,6,1};