读书笔记
创建对象时使用()和{}的区别
1、大括号可以指定容器的初始内容>。
std::vector<int> v{
1,3,5}
2、大括号可以用来为非静态成员指定默认初始化值,也可以用’='的初始化语法,不能用()。
class Widget{
...
private:
int x{
0};//可行
int y = 0;//可行
int z(0);//不可行
}
3、不可复制对象(只移类型)可以用大括号和小括号进行初始化,却不能使用"=":
std::atomic<int> ai1{
0};
std::atomic<int> ai2(0);
std::atomic<int> ai3 = 0;//不可行
4、大括号禁止內建型别之间进行隐式窄化型别转换,小括号和=不会进行隐式窄化类型检查。
double x,y,z;
.