(1)继承是创建一个具有某个类的属性和行为的新类的能力。原有的类称为基类,新创建的类称为派生类。派生类将基类中的所有成员作为自己的成员,同时派生类本身可以定义新的成员
(2)派生类只有一个基类的继承称单重继承,简称单继承。派生类具有两个或两个以上的基类的继承称为多重继承,简称多继承。C++语言支持单继承,又支多继承
(3)派生类有3种继承方式:公有继承( public)、私有继承( private)和保护继承( protected)。不同的继承方法中,基类成员在派生类中的访问权限是不同的。3种继承方式中,基类的私有成员在派生类中都是不可见的。公有继承时,基类中公有成员和保护成员在派生类中仍然是公有成员和保护成员;私有继承时,基类中公有成员和保护成员在派生类中都是私有成员;保护继承时,基类中公有成员和保护成员在派生类中都是保护成员。
(4)构造函数不能够继承。因此,派生类的构造函数必须通过调用基类的构造函数来初始化基类的对象。派生类构造函数格式如下
<派生类名>(<派生类构造函数总参数表>):<基类构造函数名>(<参数表1>),…,<子对象名>(<参数表n>)
{
<派生类中数据成员初始化>
}
其中,<派生类名>即为派生类的构造函数名
派生类的构造函数中应包含基类构造函数,子对象类构造函数以及派生类本身构造函数
如果派生类中有默认构造函数,则该默认构造函数将自动包含有基类的默认构造函数
(5)一个特定的类型,当且仅当它至少提供了另一个类型的行为时,则称该类型是另个类型的子类型。这是类型之间的特殊和一般的关系。在公有继承方式下,派生类是基类的子类型,反之不然
6)赋值兼容规则如下
①派生类对象可以赋给基类对象;
②派生类对象可以初始化基类对象的引用;
派生类对象的地址值可赋给指向基类对象的指针。
上述规则的基础是派生类是基类的子类型。
(7)多继承的构造函数的成员初始值表中要包含多个基类的构造函数。对多个基类的构造函数的执行顺序取决于定义多继承时,派生类名后面给定的多个基类名的顺序
(8)多继承通常会在下述两种情况下出现二义性:
①访问不同基类中的相同成员时,可能出现二义性
②访问共同基类中的成员时,可能出现二义性。
避免二义性的方法通常使用成员名限定法。
(9)虚基类是消除公共基类引起二义性的最好方法。说明虚基类的关键字是virtual
其格式如下
class<派生类名>: virtual<继承方式><基类名>
(10)虚基类的间接派生类的构造函数的成员初始值表中要含有公共基类的构造函数,这时虚基类构造函数优先执行,并且仅被执行一次

(11)当对象被删除时,派生类的析构函数被执行,由于析构函数也不能被继承,先执行派生类的析构函数,在执行基类的析构函数,顺序与执行构造函数相反

转载于:https://www.cnblogs.com/lovehelenmore/p/10808588.html

C++基础之继承类和派生类相关推荐

  1. C++学习 十五、类继承(1)基类,派生类,访问权限,protected

    C++学习 十五.类继承(1)基类,派生类 前言 类继承 类的关系与继承 基类, 派生类 基类 派生类 构造函数,析构函数 文件位置 访问权限 protected 后记 前言 本篇开始学习C++类的继 ...

  2. 807-C++多继承下,派生类对象有几张虚函数表?

    C++多继承下,派生类对象有几张虚函数表? 我们看下面这个示例: #include <iostream> #include <string> #include <type ...

  3. python根据一个基类生成派生类_python中的封装继承多态

    1.封装 类的封装可以隐藏类的实现细节,迫使用户只能通过方法去访问数据,这样就可以增强程序的安全性.接下来演示未使用封装可能出现的问题,如例所示. 在例中,运行结果输出的成绩为-68,在程序中不会有任 ...

  4. C++ 类的继承,基类,派生类

    继承: 当创建一个类时,不需要重新编写新的数据成员和成员函数,只需指定新建的类继承了一个已有的类的成员即可. 这个已有的类称为基类,新建的类称为派生类. 例: //基类class Animal {// ...

  5. c++继承与派生(设计一个圆类Circle和一个桌子类Table,另设计一个圆桌类Roundtable,它是前面两个类的派生类,要求编写测试程序给出输出一个圆桌的高度、面积和颜色等数据。)

    #设计一个圆类Circle和一个桌子类Table,另设计一个圆桌类Roundtable,它是前面两个类的派生类,要求编写测试程序给出输出一个圆桌的高度.面积和颜色等数据. #include<io ...

  6. C++中基类与派生类的构造函数和析构函数

    1.Cpp中的基类与派生类的构造函数 基类的成员函数可以被继承,可以通过派生类的对象访问,但这仅仅指的是普通的成员函数,类的构造函数不能被继承.构造函数不能被继承是有道理的,因为即使继承了,它的名字和 ...

  7. 派生类到基类的转换 和基类到派生类的转换

    一. 基类与派生类的转换     3种继承方式(公用.保护.私有继承)中,公用派生类才是基类真正的子类型,它完整地继承了基类的功能.     不同类型数据之间在一定条件下可以进行类型的转换.基类与派生 ...

  8. C++:基类和派生类

    4.1 派生类的声明 继承实例如下: class Person{ //声明基类Person public:void print(){cout<<"name:"<& ...

  9. 基类与派生类之间的转换关系

    一. 派生类到基类的转换: 1.可以使用派生类指针初始化基类指针,同样也可以使用派生类的引用或对象初始化基类的引用,注意这里提到的是对象的指针和引用而不是对象本身: (但是,在使用基类指针(或引用)指 ...

最新文章

  1. 删除当前及子文件夹中的空目录
  2. 吴渴楨 160809206
  3. 赚钱的这些年(上)苦逼
  4. 恢复删除的Linux文件
  5. Java_01_环境变量的配置
  6. android传感器获取运动方向,Android开发者指南-运动传感器Motion Sensor[原创译文]...
  7. java 线程间通信 handler_Handler不同线程间的通信
  8. 【BZOJ2744】【codevs2366】朋友圈,二分图最大匹配
  9. Centos-redis安装配置
  10. Linux网络子系统中旧的报文接收接口netif_rx
  11. 计算机股票编程,计算机技术《股票软件编程》.doc
  12. 颜色模型与颜色应用---标准基色和色度图
  13. 启动Kettle时报错找不到文件javaw.exe
  14. 软件开发工作量的估算方法
  15. UIWebView加载本地HTML文件
  16. 虚拟机安装麒麟操作系统网络设置
  17. 官场直升机 鸿蒙笔著,鸿蒙笔会征文一等奖作品 《啼笑缘》续集
  18. Oracle首席工程师四火:技术面试中,怎样的问题才是好问题?
  19. 阿里巴巴社招Java面试题做题记录
  20. 中国电信IPTV标准研究之机顶盒

热门文章

  1. python添加模块路径_(转)为Python添加默认模块搜索路径
  2. 离散小波变换 python_CDF 9/7离散小波变换(卷积)
  3. java jframe 背景颜色_Java JFrame背景颜色不起作用
  4. python数据怎么用不了_为什么自学Python看不进去?
  5. 双目视觉焦距_双目视觉简介
  6. SQL SERVER 判断是否存在并删除某个数据库、表、视图、触发器、储存过程、函数
  7. 【阿里云课程】1小时快速掌握Tensorflow核心功能,完成完整的项目实践
  8. 【每周NLP论文推荐】 生成式聊天机器人论文介绍
  9. 中国非动物胶市场来产销需求及发展潜力研究报告2022版
  10. 用对齐原则求结构体长度