C++类构造函数语法的解释?

Dav*_*ran 0 c++

阅读C++编程语言第4版,有一个类似的定义

class Vector
{
    private:
        int sz;
        double *a;
    public:
        Vector(int s) :elem{new double[s]}, sz{s} {}
}
Run Code Online (Sandbox Code Playgroud)

我对这个构造函数语法的工作原理有点困惑.我相信Vector(int s)正在创建一个构造函数,它接受一个参数s,并初始化elemsz.但为什么会有:?我以为功能体被包围了{}?那么最后的空括号{}是什么?

Din*_*han 5

: 被称为初始化列表,用于在调用构造函数时快速简明地设置成员变量的值.

{}是构造函数的方法体.由于构造函数与方法类似,因此必须存在用于编译代码的主体.由于不需要任何代码,因此使用空体,因此函数不执行任何操作.