C++继承与派生
作者:网络转载 发布时间:[ 2014/9/24 11:11:01 ] 推荐标签:软件开发 Net
一、继承时,派生类包含基类除构造函数和析构函数之外的所有成员,构造函数和析构函数不能被继承;
覆盖:派生类中定义一个与基类数据成员或成员函数同名的成员,则替换基类的成员。
覆盖不是成员的重载,只是掩盖了从基类继承得到的同名成员,作用域声明后,仍可引用基类成员。可在派生类成员函数中引用基类成员,进行扩展。
1.吸收基类成员
2.改造基类成员
3.添加新的成员
类的继承方式:公有继承(成员属性不变)、保护继承(保护)、私有继承(私有)
当程序创建一个子类对象时,系统会为该类中的实例变量分配内存,也会为从父类中继承得到的所有实例变量分配内存,即使子类中定义了与父类中同名的实例变量。
二、派生类的构造函数和析构函数:构造函数调用顺序:先祖先、后客人(对象成员,按照声明顺序)、再自己
无论父类里面有没有虚函数,都可以定义指向子类实例的父类指针.
如果父类里没有虚函数,则使用父类指针,只能访问父类的成员,而不能访问子类里的成员.
如果父类里的虚函数不是纯虚函数,且子类里没有重写该虚函数,则用父类指针访问该虚函数的时候,跟访问父类里的普通函数一样.
如果父类里的虚函数不是纯虚函数,且子类里重写了该虚函数,则用父类指针访问该虚函数的时候访问的是子类里重写后的函数.
如果父类里的虚函数是纯虚函数,则父类是个抽象类,子类要想能够被实例化,则必须重写该纯虚函数.用父类指针访问该纯虚函数的时候,访问到的是子类里重写了的函数.
1.析构函数可以是虚函数,通过delete一个抽象类指针式,才能通过虚函数找到真正的虚构函数。
2.构造函数不能为虚函数。
3.析构函数可以是纯虚函数。
类对象而言,相同类型的类对象是通过拷贝构造函数来完成整个复制过程的。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11