C++11:列表初始化
init
新增了列表初始化
//初始化变量
int main()
{
int x1 = 1;
int x2{ 2 };
int array1[]{1, 2, 3, 4, 5};
int array2[5]{ 0 };
int* pa = new int[4]{ 0 };
return 0;
}
//初始化对象
class Date
{
public:
Date(int year, int month, int day)
: _year(year)
, _month(month)
, _day(day)
{
}
private:
int _year;
int _month;
int _day;
};
int main()
{
Date d1(2022, 1, 1);
Date d2{2022, 1, 2};
return 0;
}
//初始化数组
int main()
{
vector<int> v = {1, 2, 3, 4};
list<int> lt = {1, 2};
map<string, string> dict = { {"sort", "排序"}, {"insert", "插入"} };
v = {10, 20, 30};
return 0;
}
原来C++类中,有6个默认成员函数:
- 构造函数
- 析构函数
- 拷贝构造函数
- 拷贝赋值重载
- 取地址重载
- const 取地址重载
当然,我们平常很少用到后两个。在C++11中,又新增了两个默认构造函数,分别是移动构造和移动赋值。

浙公网安备 33010602011771号