//不要重新定义继承而来的非虚函数
#include <iostream>
using namespace std;
//基类Base1定义
class Base1 {
public:
void display() const {
cout << "Base1::display()" << endl;
}
};
//公有派生类Base2定义
class Base2: public Base1 {
public:
void display() const {
cout << "Base2::display()" << endl;
}
};
//公有派生类Derived定义
class Derived: public Base2 {
public:
void display() const {
cout << "Derived::display()" << endl;
}
};
//参数为指向基类对象的指针
void fun(Base1 *ptr) {
ptr->display(); //"对象指针->成员名"
}
//主函数
int main()
{
Base1 base1; //声明Base1类对象
Base2 base2; //声明Base2类对象
Derived derived; //声明Derived类对象
fun(&base1); //用Base1对象的指针调用fun函数
fun(&base2); //用Base2对象的指针调用fun函数
fun(&derived); //用Derived对象的指针调用fun函数
return 0;
}
类型转换规则举例
最新推荐文章于 2022-08-01 20:25:49 发布