c++中Array( int n = 10 ):size(n) { ptr = new int[n]; }中的“:size(n)”是什么意思?

来源:百度知道 编辑:UC知道 时间:2024/05/07 19:41:50
class Array{
public:
Array( int n = 10 ):size(n) { ptr = new int[n]; }
~Array() { delete [] ptr;}
private:
int size; // size of the array
int *ptr; // pointer to first element of array
};

size(n)属于构造函数的一部分 在构造函数体之前执行

size(n)等价于size=n;这是C++中提倡的一种赋值语句,用构造函数的形式初始化简单类型的变量

size(n)其实是参数初始化列表的形式,上面的构造函数也可以这样写:
Array(int n=10):size(n),ptr(new int[n]){}

size(n) 相当于size=n;
如果此类还有父类也可以以这种方式调用父类的构造函数