定义一个基类BaseClass,从它派生出类DerivedCalss,BaseClass有成员函数fn1(),fn2(),DerivedClass也有成员函数fn1(),fn2(),在主函数中声明一个DerivedCalss的对象,分别用DerivedCalss的对象以及BaseClass和DerivedCalss的指针来调用fn1(),fn2(),观察运行结果。
时间: 2024-03-23 18:39:57 浏览: 44
cg2_基类BaseClass派生出类_noddedc1c_
5星 · 资源好评率100%
好的,下面是代码实现:
```c++
#include <iostream>
using namespace std;
class BaseClass {
public:
void fn1() {
cout << "BaseClass::fn1()" << endl;
}
void fn2() {
cout << "BaseClass::fn2()" << endl;
}
};
class DerivedClass : public BaseClass {
public:
void fn1() {
cout << "DerivedClass::fn1()" << endl;
}
void fn2() {
cout << "DerivedClass::fn2()" << endl;
}
};
int main() {
DerivedClass d;
BaseClass* b = &d;
DerivedClass* d1 = &d;
d.fn1(); // 调用 DerivedClass::fn1()
d.fn2(); // 调用 DerivedClass::fn2()
b->fn1(); // 调用 BaseClass::fn1()
b->fn2(); // 调用 BaseClass::fn2()
d1->fn1(); // 调用 DerivedClass::fn1()
d1->fn2(); // 调用 DerivedClass::fn2()
return 0;
}
```
输出结果:
```
DerivedClass::fn1()
DerivedClass::fn2()
BaseClass::fn1()
BaseClass::fn2()
DerivedClass::fn1()
DerivedClass::fn2()
```
从输出结果可以看出,当使用 DerivedClass 对象调用成员函数 fn1() 和 fn2() 时,会调用 DerivedClass 自己的函数;当使用 BaseClass 指针指向 DerivedClass 对象,并调用成员函数 fn1() 和 fn2() 时,会调用 BaseClass 的函数;当使用 DerivedClass 指针指向 DerivedClass 对象,并调用成员函数 fn1() 和 fn2() 时,会调用 DerivedClass 自己的函数。
阅读全文