在C++中,派生类的一般定义语法为:

class 派生类名:继承方式 基类名1,继承方式 基类名2,....,继承方式 基类名n
{派生类成员声明;
};

派生类成员是指出了从基类继承来的所有成员之外,新增加的数据和函数成员。

#include <iostream>using namespace std;// 基类
class Shape {protected:int width = 0;int height = 0;public:void setWidth(int width){this -> width = width;}void setHeight(int height){this ->  height = height;}int getWidth(){return this -> width;}int getHeight(){return this -> height;}};// 派生类
class Rectangle: public Shape{public:int getPerimeter(){ return (width + height) * 2; }int getArea(){ return (width * height); }
};int main(void){Rectangle *rectangle = new Rectangle();rectangle -> setWidth(4);rectangle -> setHeight(3);cout << "长:" << rectangle -> getHeight() << endl;cout << "宽:" << rectangle -> getWidth() << endl;cout << "周长:" << rectangle -> getPerimeter() << endl;cout << "面积: " << rectangle -> getArea() << endl;delete rectangle;return 0;
}

注:

  • 一个派生类,可以同时有多个基类,这种情况称为多继承,这时的骗谁呢该类同时得到了多个已有类的特征。
  • 一个派生类只有一个直接基类的情况,称为单继承。
  • 在派生过程中,派生出来的新类也同样可以作为基类再继续派生新的类,此外,一个基类可以同时派生出多个派生类。
  • 一个类从父类继承来的特征也可以被其他新的类所继承,一个父类的特征,可以同时被多个子类继承,形成一个相互关联的类的家族,有时成为类族。
  • 在类族中,直接参与派生出某类的基类成为直接基类,基类的基类甚至更高层的基类成为间接基类。
  1. 在派生类的定义中,除了要指定基类外,还需要指定继承方式。继承方式规定了如何访问从基类继承的成员。
  2. 在派生类的定义语句中,每一个“继承方式”,只限定紧随其后的基类。
  3. 继承方式关键字为:publicprotectedprivate,分别表示公有继承、保护继承和私有继承。
  4. 如果不显示地给出继承方式关键字,系统的默认值就认为是私有继承(private)。
  5. 类的继承方式指定了派生类成员以及类外对象对于从基类继承来的成员的访问权限。

C++ 派生类的定义相关推荐

  1. 6-3 派生类的定义和使用

    6-3 派生类的定义和使用 分数 4 全屏浏览题目 切换布局 作者 李廷元 单位 中国民用航空飞行学院 按要求完成下面的程序: 1.定义一个Animal类,包含一个void类型的无参的speak方法, ...

  2. Essential C++学习记录笔记整理35(定义一个派生类)

    目录 派生类: 一些机制的说明 纯虚函数和虚函数的补充 类继承的一些原则和注意(对于继承过来的数据成员/成员函数) 跳过虚函数机制 派生类同名成员优先被调用机制 如何在派生类调用基类的成员函数(该成员 ...

  3. C++ 虚函数在基类与派生类对象间的表现及其分析

    近来看了侯捷的<深入浅出MFC>,读到C++重要性质中的虚函数与多态那部分内容时,顿时有了疑惑.因为书中说了这么一句:使用"基类之指针"指向"派生类之对象&q ...

  4. 基类成员的public访问权限在派生类中变为_C++ 派生类的构造函数(学习笔记:第7章 06)...

    派生类的构造函数[1] 默认情况 基类的构造函数不被继承; 派生类需要定义自己的构造函数. C++11规定 可用using语句继承基类构造函数. 但是只能初始化从基类继承的成员. 派生类新增成员可以通 ...

  5. 基类指针调用派生类函数_C++ 多态性:虚函数--基类与派生类类型转换(第7章 05)例子问题解析(学习笔记:第8章 05)...

    虚函数[1] 问题:还记得第7章的例子吗[2]? 例7-3 类型转换规则举例 #include <iostream> using namespace std; class Base1 { ...

  6. php 派生类 构造,C++派生类的构造函数和析构函数

    派生类对象中包含基类对象,因此派生类对象在创建时,除了要调用自身的构造函数进行初始化外,还要调用基类的构造函数初始化其包含的基类对象.因此,程序中任何能够生成派生类对象的语句,都要说明其包含的基类对象 ...

  7. 派生类类型可以转换为基类类型,反之则不行

    派生类的对象都含有基类对象作为其一部分,我们可以将指向派生类型的引用转换为指向它的基类型的引用,像转换指针一样,我们可以用派生类的对象初始化或赋值基类对象,反之却不行.class base{ publ ...

  8. Part7 继承与派生 7.4派生类的构造和析构

    1派生类的构造函数 默认情况下:基类的构造函数不被继承,派生类需要定义自己的构造函数. C++11 规定:可用using语句继承基类构造函数.但是只能初始化从基类继承的成员.这时派生类新增成员可以通过 ...

  9. C++ 基类和派生类的virtual虚析构函数

    virtual虚函数与C++的多态息息相关,C++中基类采用virtual虚析构函数主要目的是为了防止潜在的内存泄漏. 具体地说,如果派生类中申请了内存空间,并在其析构函数中对这些内存空间进行释放.假 ...

最新文章

  1. Integer vs int
  2. vue :src 文件路径错误
  3. C++万能头文件#include“bits/stdc++.h”
  4. 一面微创题--字符串逆序输出
  5. vue ---- filter(vue2才有)
  6. 设计模式面对面之单例模式
  7. python建立ip代理池_如何建Python爬虫的IP代理池?3步学会搭建IP代理池
  8. 适合初学者的PASCAL VOC2012数据集的下载及简单讲解
  9. 苹果笔记本电脑我的计算机在哪里设置密码,Mac小教程:设置苹果Mac电脑的开机密码...
  10. 计算机网络ABCD,计算机网络理及应用试卷(ABCDE).doc
  11. linux find命令 括号,Linux中find命令细节详解
  12. 程序人生 - 车辆年检与费用你知道多少?
  13. 拼多多,京东,1688一键铺货到淘宝
  14. SSM基于WEB的房屋出租管理系统 毕业设计-附源码261620
  15. MR 多mapper和reduc应用
  16. Android——加速传感器(ACCELEROMETER)的应用
  17. python分析方向的第三方库_Python标准库与第三方库详解
  18. PLSQL基本操作手册
  19. 二手电商的盛与衰:闲鱼持续扩张,爱回收稳扎稳打,转转战略失焦
  20. 文件压缩及上传FTP服务器简单应用(实践篇)

热门文章

  1. Git for Windows 2.13.1(2) 发布,分布式版本控制系统
  2. Android——apk反编译
  3. OK335xS CAN device register and deiver match hacking
  4. Oracle 11g Release 1 (11.1) 查询优化器的访问路径
  5. 【转载】企业级服务器设计与实现经验之插件系统基础篇
  6. linux驱动学习笔记(2.4) scull 脚本scull_init
  7. html5新增属性有哪些,HTML5 新增属性
  8. jQuery之动画效果
  9. C++/STL Bitset (转)
  10. golang中的strings.TrimRight