📅  最后修改于: 2023-12-03 15:13:45.140000             🧑  作者: Mango
本文将介绍C++中构造函数的第三个问题:如何手动调用基类构造函数。
在使用C++继承时,派生类会自动调用基类的默认构造函数。但是,在某些情况下,我们需要手动调用基类的构造函数,以便在派生类对象创建时初始化基类成员变量。
在C++中,我们可以使用初始化列表来手动调用基类构造函数。在派生类的构造函数中,我们可以使用“:”符号后面跟着基类构造函数来调用它。例如:
class Base {
public:
Base(int x) {
// 普通的构造函数实现
}
};
class Derived : public Base {
public:
Derived(int x, int y) : Base(x) {
// 派生类构造函数中手动调用基类构造函数
// 初始化列表中Base(x)表示调用Base的构造函数
}
};
在上面的例子中,派生类Derived
可以通过Base(x)
来调用基类Base
的构造函数,以初始化基类成员变量。
值得注意的是,在派生类的构造函数中,对基类成员变量的初始化必须在所有其他成员变量之前进行。因此,在拥有多个成员变量的派生类中,可以将多个初始化列表联在一起,以确保正确的顺序。例如:
class Base {
public:
Base(int x) {
// 普通的构造函数实现
}
};
class Derived : public Base {
public:
Derived(int x, int y, int z) : Base(x), memberVar(y), anotherVar(z) {
// 派生类构造函数中手动调用基类构造函数,并初始化其他成员变量
}
private:
int memberVar;
int anotherVar;
};
手动调用基类构造函数是在C++中保证类继承正确工作的必要手段。在派生类的构造函数中,你可以使用初始化列表来调用基类构造函数,并初始化其他成员变量。