比如图形(Shape)类, 就是一个抽象的概念,因为我们无法计算这个“图形”的面积,所以它的成员函数area()是空的。
而继承它的子类(矩形,圆形,三角形等)就可以去重写area()成员函数....1
当多个不同的父类指针指向同一个多重继承的子类时,可能拥有不同地址
比如:
#include
using namespace std;
class BaseA
{...从上图看到,其实pa和pb还是位于d对象地址里,只是指向的位置不同而已.所以在多重继承里,最好不要使用等号直接判断两个指针对象是否相等....()成员函数,
通过equal()成员函数来判断指针是否指向当前对象,使用dynamic_cast强制转换
例如:
#include
using namespace std;...以p->equal(dynamic_cast(pInt1))为例,我们编译时,编译器就会去检查pInt1所在的地址,然后找到是d对象,通过d对象找到Base父类,从而去修正pInt1指针的地址