2017.2.26
1.类与类指针交错
子类指向子类,常规情况
父类指向父类,常规情况
子类指针指向父类对象,子类不涉及内部数据的函数会调用成功,涉及到内部数据的会调用成功,执行失败
子类可以调用父类不重名的函数,如果要调用父类重名的函数,要用 yy –>父类 ::函数的形式
父类指针指向子类对象,只能用父类的函数。
2.父类指针和子类指针的释放
子类指针指向子类对象,顺序为先创建父类,再创建子类,先析构子类,再析构父类。
子类指针指向父类对象,顺序为先构建父类,再构建子类,析构子类(可能发生内存越界)
父类指针指向子类对象,顺序为先构建父类,再构建子类,析构父类(发生内存泄漏)
3.构造函数不能是虚函数
析构函数可以是虚函数(虚函数在父类上,父类指针指向子类对象,可以释放子类,避免内存泄漏)
派生类重载基类中的虚函数要求函数名,返回类型,函数参数个数,顺序,类型必须完全相同。
4.纯虚函数和抽象类
virtual 函数 =0;提供接口 可以有指向纯虚函数的指针
不能实例化,不能作为参数,返回类型,有无定义都可以
4.继承一个抽象类,没有把纯虚函数全实例化,仍然是抽象类