类型兼容规则:共有派生类替代基类对象。赋值,引用,指针。 A1共有派B1,B1共有派生C1 #include <iostream> #include <iomanip> using namespace std; class A1 { public: void display(int){cout <<"A1::display()"<<endl;} }; class B1 :public A1 { public: void display(){cout <<"B1::display()"<<endl;} }; class C1:public B1 { public: void display()const {cout <<"C1::display()"<<endl;} }; main() { A1 a,*pa; B1 b,*pb; C1 c; b.display(); //调用成员函数 b.A1::display(1); //调用从积累继承的成员函数 pa = &b; (*pa).display(1); // 兼容 c.display(); pb = &c; (*pb).display(); } 输出: B1::display()A1::display()A1::display()C1::display()B1::display()