c++ Derived类通过私有继承的方式从基类base继承而来,base类包含公有成员函数work1(),work2(),在主函数中通过派生类derived的对象调用基类函数work1(),在work1()函数中显示输出信息验证work1()是否被调用
时间: 2024-02-13 16:07:01 浏览: 92
c++ base类 和 derive类 实例
好的,根据您的要求,我来为您解答这个问题。
首先,需要注意的是,私有继承意味着基类的公有和保护成员在派生类中变成私有的。因此,在派生类中无法直接调用基类的公有成员函数。
不过,我们可以使用一些技巧来访问基类的公有成员函数。比如可以在派生类中定义公有成员函数来间接调用基类的成员函数。
下面是一个示例代码:
```cpp
#include <iostream>
using namespace std;
class Base {
public:
void work1() {
cout << "Base::work1()" << endl;
}
void work2() {
cout << "Base::work2()" << endl;
}
};
class Derived : private Base {
public:
void callBaseWork1() {
work1(); // 间接调用基类的 work1 函数
}
};
int main() {
Derived d;
d.callBaseWork1();
return 0;
}
```
在上面的代码中,我们定义了一个私有继承自 Base 的派生类 Derived。在 Derived 中,我们定义了一个公有成员函数 callBaseWork1() 来间接调用基类的 work1() 函数。在主函数中,我们创建了 Derived 的对象 d,并调用了它的 callBaseWork1() 函数。
当我们运行这段代码时,会发现屏幕上输出了 "Base::work1()" 的信息,说明基类的 work1() 函数被成功调用了。
需要注意的是,因为私有继承使得基类的公有成员在派生类中变成了私有的,所以在派生类中我们只能间接调用基类的成员函数,而不能直接访问。
阅读全文