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中,又新增了两个默认构造函数,分别是移动构造和移动赋值。

 

posted @ 2023-07-05 16:32  言午丶  阅读(36)  评论(0)    收藏  举报