第二章 第八节 C++11

18 December 2021  |  home page


类的初始化

credit to zdd

初始化列表

e.g.

struct foo
{
    string name ;
    int id ;
    foo(string s, int i):name(s), id(i){} ; // 初始化列表
};

构造函数的冒号后即位初始化列表.

构造函数的两个执行阶段

  1. 初始化阶段 所有类类型的成员都会在初始化阶段初始化,即使该成员没有出现在初始化列表里 若使用初始化列表赋值,则可以直接跳过类成员初始化而直接用赋值

  2. 计算阶段 一般指构造函数体内给成员变量赋值

初始化列表适合放什么变量

C++11 新特性

C++11 可变参数模板

e.g.

Template<class ... T>
void func(T ... args)
{
    cout << "num is " << sizeof ... (args) << endl;
}

其中

Lambda 表达式

形式:[capture] (params) mutatble -> return-type {statement}




Hosted on GitHub Pages — Theme by orderedlist