05/13/2020
C++再创建对象时注意区分()和{}
C++初始化的多样性
int x(0);
int x = 0;
int x{
0};
**加粗样式**int x = {
0};//通常来说,编译器把它当成是 int x{0};来处理
初始胡不等于赋值
int x = 0;
对于以上例子,有人会看出是初始化并赋值,其实并没有赋值操作。其实初始化和赋值是关于调用不同函数完成的。
用户自定义对象的创建
Widget w1;
Widget w2 = w1; //调用拷贝构造函数
w1 = w2; //调用拷贝赋值运算符
统一初始化
- 形式花括号
用途
- 初始化列表
- 非静态成员指定默认初始化值
- 不可复制的对象