1、基类指向派生类的指针
2、派生类指向基类的指针
3、以及将派生类指针强制转换为基类指针
4、将基类指针强制转换为派生类指针
无论是基类指向派生类还是派生类指向基类,重点就是哪个类的指针就调用哪个类的方法,而输出的是指针指向的对象。
基类指向派生类的指针即将派生类对象赋给基类指针,如果输出的话,调用的方法是基类的方法,输出的是基类在派生类中的成员(想要通过基类指针调用那些只有派生类才有的成员将会产生语法错误 )。
派生类指向基类的指针即将基类对象赋给派生类指针,调用的是派生类的方法,输出的是基类对象的成员。
还有一点就是把基类指针直接赋给派生类指针是危险的,编译器不允许真么做,也不会作隐式转换,显示调用说明程序员已经知道了这种危险性。用派生类指针引用基类对象是个语法错误,如果非要这么做的话,必须像程序中那样,先用基类指针指向基类对象,再将基类指针强制转换为派生类指针 。
原文出自:
http://hi.baidu.com/lml12377/blog/item/566fa6f8efa51209d8f9fd78.html