我在一本书中看到了以下代码,我想知道发生了什么:
class shiftedList{
int* array;
int offset, size;
public:
shiftedList(int sz) : offset(0), size(sz){
array = new int[size];
}
}
类的构造函数中的offset(0)和size(sz)是怎么回事?
感谢您的帮助。
答案 0 :(得分:1)
它们只是初始化器,是构造函数的一部分。
因此,在这种特定情况下,它等同于
shiftedList(int sz) {
offset = 0;
size = sz;
array = new int[size];
}
除了编译器可以做更好的优化,初始化实际上可能不会产生任何代码。
有时使用初始化列表 ,特别是初始化参考变量的那些。