阅读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,并初始化elem和sz.但为什么会有:?我以为功能体被包围了{}?那么最后的空括号{}是什么?
: 被称为初始化列表,用于在调用构造函数时快速简明地设置成员变量的值.
{}是构造函数的方法体.由于构造函数与方法类似,因此必须存在用于编译代码的主体.由于不需要任何代码,因此使用空体,因此函数不执行任何操作.