赋值兼容性
书上看到的一个例子 程序代码:
#include "stdafx.h" #include <iostream> using namespace std; class A { int x; public: A(int i){x=i;} void disp(){cout<<"x="<<x<<endl;} }; class B:public A { int y; public: B(int i,int j):A(i){y=j;} void disp(){cout<<"y="<<y<<endl;} }; int main(int argc,char* argv[]) { A *p,a(1); B b(2,3); p=&a; p->disp(); p=&b; p->disp(); return 0; }书上这样说 原意是想用指针p分别调用父类和子类中的disp()函数。由于赋值兼容性,p只能调用到父类的disp()函数。
输出:
那位大侠给我讲下这里的赋值兼容性规则。