一、
1、声明一个派生类对象,构造函数的执行顺序是:限制性基类的构造函数(体),在执行本类的构造函数(体)
2、回收一个派生类对象,析构函数的执行顺序:先执行本类的析构函数(对本类特有成员相关堆空间进行释放),再执行基类的析构函数。
二、
将子类对象当父类对象的情况:将子类对象赋值给父类对象,父类引用指向子类对象,父类指针指向子类对象
向下转型
将父类的指针或者引用转为子类的指针或者引用。目的是为了(通过父类指针或者引用)访问子类的成员。
向下转型的前提:父类指针或者引用“指向”的对象为子类的对象。(乡下转型是危险的)。
Circle c(1,2,3);
Point *p = &c;
p->dis();
Circle *c1 = (Circle*)p;
c1->dis();
通过“指向”子类对象的父类指针或者引用访问子类的成员:向下转型(强转,危险)。