C++继承与派生

发表于:2014-9-24 10:22

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:建业v    来源:51Testing软件测试网采编

  一、继承时,派生类包含基类除构造函数和析构函数之外的所有成员,构造函数和析构函数不能被继承;
  覆盖:派生类中定义一个与基类数据成员或成员函数同名的成员,则替换基类的成员。
  覆盖不是成员的重载,只是掩盖了从基类继承得到的同名成员,作用域声明后,仍可引用基类成员。可在派生类成员函数中引用基类成员,进行扩展。
  1.吸收基类成员
  2.改造基类成员
  3.添加新的成员
  类的继承方式:公有继承(成员属性不变)、保护继承(保护)、私有继承(私有)
  当程序创建一个子类对象时,系统会为该类中的实例变量分配内存,也会为从父类中继承得到的所有实例变量分配内存,即使子类中定义了与父类中同名的实例变量。
  二、派生类的构造函数和析构函数:构造函数调用顺序:先祖先、后客人(对象成员,按照声明顺序)、再自己
  无论父类里面有没有虚函数,都可以定义指向子类实例的父类指针.
  如果父类里没有虚函数,则使用父类指针,只能访问父类的成员,而不能访问子类里的成员.
  如果父类里的虚函数不是纯虚函数,且子类里没有重写该虚函数,则用父类指针访问该虚函数的时候,跟访问父类里的普通函数一样.
  如果父类里的虚函数不是纯虚函数,且子类里重写了该虚函数,则用父类指针访问该虚函数的时候访问的是子类里重写后的函数.
  如果父类里的虚函数是纯虚函数,则父类是个抽象类,子类要想能够被实例化,则必须重写该纯虚函数.用父类指针访问该纯虚函数的时候,访问到的是子类里重写了的函数.
  1.析构函数可以是虚函数,通过delete一个抽象类指针式,才能通过虚函数找到真正的虚构函数。
  2.构造函数不能为虚函数。
  3.析构函数可以是纯虚函数。
  就类对象而言,相同类型的类对象是通过拷贝构造函数来完成整个复制过程的。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号