注意:本文中代码均使用 Qt 开发编译环境
#include <QCoreApplication>
#include <QDebug>
class B0 {
public:
virtual void display(){
qDebug() << "B0::display()";
}
};
class B1:public B0 {
public:
void display(){
qDebug() << "B1::display()";
}
};
class D1:public B1 {
public:
void display(){
qDebug() << "D1::display()";
}
};
void fun(B0* ptr){
if(NULL != ptr){
ptr->display();
}
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
B0 b0;//声明基类对象
B0 *p = NULL;//声明基类指针
B1 b1;//声明派生类对象
D1 d1;
p = &b0;
fun(p);//调用基类成员
p = &b1;
fun(p);//调用派生类成员
p = &d1;
fun(p);//调用派生类成员
return a.exec();
}
运行结果:
B0::display()
B1::display()
D1::display()
大家可以参照运行结果去体会和理解
网友评论