注意:本文中代碼均使用 Qt 開發(fā)編譯環(huán)境
#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;//聲明基類對(duì)象
B0 *p = NULL;//聲明基類指針
B1 b1;//聲明派生類對(duì)象
D1 d1;
p = &b0;
fun(p);//調(diào)用基類成員
p = &b1;
fun(p);//調(diào)用派生類成員
p = &d1;
fun(p);//調(diào)用派生類成員
return a.exec();
}
運(yùn)行結(jié)果:
B0::display()
B1::display()
D1::display()
大家可以參照運(yùn)行結(jié)果去體會(huì)和理解