如果基类的构造函数含有形参,那么在多重派生下如何将基类的数据在派生类输出举例子说明
时间: 2024-03-21 14:38:58 浏览: 20
在多重派生下,如果基类的构造函数含有形参,可以通过在派生类的构造函数中调用基类的构造函数并传递参数的方式来实现将基类的数据在派生类中输出。
下面是一个示例代码:
```c++
#include <iostream>
using namespace std;
class Base {
public:
Base(int num): m_num(num) {}
void print() {
cout << "Base: " << m_num << endl;
}
private:
int m_num;
};
class Derived1: public Base {
public:
Derived1(int num): Base(num) {}
};
class Derived2: public Derived1 {
public:
Derived2(int num): Derived1(num) {}
void print() {
cout << "Derived2: " << endl;
Base::print();
}
};
int main() {
Derived2 d2(100);
d2.print();
return 0;
}
```
在这个示例代码中,Base类含有一个int类型的成员变量m_num,并在构造函数中进行初始化。Derived1类继承自Base类,Derived2类继承自Derived1类。
在Derived2类的print函数中,首先输出"Derived2: ",然后调用Base类的print函数输出m_num的值。在Derived2类的构造函数中,通过调用Derived1的构造函数并传递参数的方式将参数传递给Base类的构造函数。
当创建Derived2类的对象d2时,会先调用Derived2的构造函数,然后依次调用Derived1和Base的构造函数进行初始化。最后调用d2的print函数输出Base类的成员变量m_num的值。输出结果为:
```
Derived2:
Base: 100
```