为什么我可以使用初始化列表来构造对象
Why I can use initialtion list to construct object?
我有一个类,它有三个字段,如
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中的新特性吗?
是的,它被称为Uniform Initialization
,它建立在初始化器列表上,并试图减轻大多数令人烦恼的解析错误。基本上,它是一种可用于任何对象的初始化语法。
您可以在维基百科上了解更多。
是的,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};
相关文章:
- 我使用向量来创建类对象列表.初始化向量时如何使用参数调用构造函数?
- 如何在不销毁对象的情况下返回对象列表
- 如何使用Q_PROPERTY公开自定义对象列表
- 什么更好?返回对象指针列表?或返回指向对象列表的指针?
- c++ 循环访问对象列表并删除对象
- 循环访问对象列表 c++
- Cython正在获取C++对象列表的长度
- 如何在屏幕上显示对象列表?
- Strcmp 类行为应用于C++中的对象列表
- 如何迭代指针指向的对象列表?
- C++对象列表数组
- 使用BOOST :: PYTHON返回裸露的类对象列表,这些对象是不可复制的
- 返回对象列表
- C 链接对象列表
- 使用for_each从对象列表中调用打印功能
- 从对象列表中获取具有特定成员值的所有对象
- 按指针列出的 C++ 对象列表
- 子类对象列表重新解释为基类对象列表?(C++11).
- 在C++中的混合对象列表中使用相同的方法
- Python:我们应该如何编写一个函数来返回对象/列表和布尔标志