C++中子类初始化父类
时间: 2023-08-12 18:17:05 浏览: 99
在C++中,子类可以通过调用父类的构造函数来初始化父类。通常情况下,子类的构造函数会调用父类的构造函数,以确保父类的成员变量能够被正确地初始化。
以下是一个示例代码,展示了子类如何初始化父类:
```c++
class Parent {
public:
Parent(int x) : value(x) {}
private:
int value;
};
class Child : public Parent {
public:
Child(int x, int y) : Parent(x), otherValue(y) {}
private:
int otherValue;
};
```
在上面的示例代码中,子类 `Child` 继承自父类 `Parent`。`Child` 的构造函数中,使用了 `Parent` 的构造函数来初始化父类的 `value` 成员变量。同时,`Child` 自己也有一个成员变量 `otherValue`,在构造函数中被初始化。
相关问题
主函数中子类对象如何调用父类构造函数
在C++中,子类对象可以通过继承父类并使用基类的构造函数来初始化。当你创建一个子类对象时,你可以选择显式地调用父类的构造函数,即使子类没有覆盖(即重写)父类的构造函数。
以下是一个例子:
```cpp
// 假设有一个基类Base
class Base {
public:
Base() { // 父类构造函数
cout << "Base constructor called." << endl;
}
};
// 子类Derived继承自Base
class Derived : public Base {
public:
Derived() : Base() { // 在子类构造函数中调用父类构造函数
cout << "Derived constructor called." << endl;
}
};
int main() {
Derived d; // 创建子类对象d,会自动调用Base的构造函数
// 输出:
// Base constructor called.
// Derived constructor called.
return 0;
}
```
在这个例子中,`Derived`的构造函数中包含了一个对`Base`构造函数的调用,这样子类对象在初始化时会先执行父类的构造过程,然后再执行自身的构造过程。
阅读全文