如何在子类构造函数中传递参数给父类构造函数? c++
时间: 2024-10-10 10:16:53 浏览: 37
在C++中,子类构造函数可以通过使用 `super()` 函数来传递参数给父类的构造函数。`super()` 函数允许你在子类的构造函数中调用父类的构造函数,并传递所需的参数。
以下是一个简单的示例,演示如何在子类的构造函数中传递参数给父类的构造函数:
```cpp
#include <iostream>
// 父类
class Parent {
public:
Parent(int x) {
std::cout << "Parent constructor called with x = " << x << std::endl;
}
};
// 子类
class Child : public Parent {
public:
// 子类构造函数,使用父类的构造函数并传递参数
Child(int x, int y) : Parent(x) {
std::cout << "Child constructor called with x = " << x << ", y = " << y << std::endl;
}
};
int main() {
// 创建子类对象,并传递参数给父类构造函数
Child obj(10, 20);
return 0;
}
```
在上面的示例中,子类 `Child` 继承了父类 `Parent`。在 `Child` 的构造函数中,我们使用 `super()` 函数来调用父类的构造函数,并传递参数 `x` 和 `y`。在主函数中,我们创建了一个 `Child` 对象,并传递了两个参数给父类的构造函数。输出结果将显示父类和子类的构造函数被调用,以及传递给父类构造函数的参数值。
请注意,如果父类的构造函数是默认的(没有参数或只有一个默认参数),则必须在子类的构造函数中显式调用它,否则编译器将报错。此外,如果父类的构造函数是带有参数的,则可以直接在子类的构造函数中传递参数,而无需使用 `super()` 函数。
阅读全文