首页 > 编程语言 >C++语言类的继承与派生介绍和示例

C++语言类的继承与派生介绍和示例

时间:2022-11-22 23:06:05浏览次数:40  
标签:派生 继承 成员 派生类 示例 C++ private 基类 class


 

继承

       继承是面向对象程序设计中最重要的一个概念。继承允许我们根据一个类来定义另一个类,达到了代码功能重用效果。

       当创建一个类时,如果待创建的类与另一个类存在某些共同特征,程序员不需要全部重新编写成员变量和成员函数,只需指定继承另一个类即可,被继承的类称为基类或父类,新建的类称为派生类或子类。

       选秀之后,被选中的超女成了宫女和王妃,宫女和王妃从超女那里继承了姓名、年龄、身高、身材、颜值等特征,还会具备一些新的特征,如果是王妃,有称号、居住的宫殿、奉䘵、为她服务的太监和宫女数量等。

基类和派生类

       定义一个派生类,需要指定它的基类,语法如下:

       class derived-class: access-specifier base-class

       derived-class:派生类名。

       access-specifie:访问修饰符 access-specifier 是 public、protected 或 private 其中的一个,base-class 是之前定义过的某个类的名称。如果未使用访问修饰符 access-specifier,则默认为 private。

       base-class:基类名

       从超女类派生出王妃类,示例如下(book235.cpp):

      

C++语言类的继承与派生介绍和示例_C语言

       运行结果如下:

      

C++语言类的继承与派生介绍和示例_类的继承与派生_02

访问控制和继承

       派生类可以访问基类中所有的非私有成员变量和成员函数,如果基类的成员变量和成员函数不想被派生类访问,则应在基类中声明为 private。

继承类型

       当一个类派生自基类,该基类可以被继承为 public、protected 或 private 几种类型。继承类型是通过上面讲解的访问修饰符 access-specifier 来指定的。

       我们几乎不使用 protected 或 private 继承,通常使用 public 继承。当使用不同类型的继承时,遵循以下几个规则:

       1)公有继承(public):当类派生以public方式继承时,基类的公有成员也是派生类的公有成员,基类的保护成员也是派生类的保护成员,基类的私有成员不能直接被派生类访问,但是可以通过调用基类的公有和保护成员来访问。

       2)保护继承(protected): 当类派生以protected方式继承时,基类的公有和保护成员将成为派生类的保护成员。

       3)私有继承(private):当类派生以private方式继承时,基类的公有和保护成员将成为派生类的私有成员。

基类与派生类的指针

       基类的指针可以指向基类对象。

       派生类的指针可以指向派生类对象。

       基类的指针可以指向派生类对象,但是不能通过基类的指针访问派生类的成员。

       派生类的指针不可以指向基类对象。

多继承

       多继承即一个派生类可以有多个基类,它继承了多个基类的特性。

       C++ 类可以从多个基类继承成员,语法如下:

       class <派生类名>:<继承方式1><基类名1>,<继承方式2><基类名2>,…

       {

              // 派生类类体

       };

       其中,访问修饰符继承方式是 public、protected 或 private 其中的一个,用来修饰每个基类,各个基类之间用逗号分隔。

个人经验

       类的继承与派生在windows环境中用得比较多,在Linux环境下用得很少,这么多年来,我只是偶尔用一下,大家只要了解继承与派生基本用法就行了,不必深入研究。

       多继承的应用场景就更少了,我从未用过。

版权声明

作者:码农有道

如果文章有错别字,或者内容有误,或其他的建议或意见,请您留言指正,非常感谢!!!

 

标签:派生,继承,成员,派生类,示例,C++,private,基类,class
From: https://blog.51cto.com/u_13748800/5878698

相关文章

  • C++语言运算符重载
     概念    在C语言中,运算符只能用于基本数据类型,例如,可以用==判断两个整数是否相等,但不能用于判断字符串是否相等,也不能用于判断结构体,也不能用于判断类。   ......
  • C++语言动态内存管理介绍和示例
     C++动态内存    在C++程序中,所有内存需求都是在程序执行之前通过定义所需的变量来确定的。但是可能存在程序的内存需求只能在运行时确定的情况。在这些情况下,程序......
  • C++语言vector容器介绍和示例
         之前我们在声明数组的时候,采用的是datatype array[len]的形式,数组在分配之后,不能调整大小,删除和插入数据时操作十分的繁琐,虽然可以采用链表,但是链表的操作更......
  • C++语言类的详解和示例
     超女选秀的例子我们玩了很久,为了教学的需要,暂时离开美眉们,我将采用实际项目开发的例子。在C语言基础知识中已学习过文件操作,在实际开发中,我会把文件操作封装成一个类,类的......
  • C++语言引用的介绍和示例
         对于习惯使用C进行开发的程序员来说,在看到C++中出现的&符号,可能会犯迷糊,因为在C语言中这个符号表示了取地址符,但是在C++中,它除了取地址,还有其它的用途,叫做引用......
  • C++语言string类介绍和示例
    在C语言中,用0结尾的字符数组表示字符串,C的字符串有一个问题,就是定义后大小不能改变,存入的内容只能比数组小,不能大,如果不小心存多了,会引起内存的溢出,这个问题让程序员很郁闷......
  • C++语言类和对象介绍和示例
     C++类和对象C语言中结构体(struct)是一种构造类型,可以包含若干成员变量,可以通过结构体来定义结构体变量。C++中的类(class)可以看成结构体的升级版,类也是一种构造类型,但是进......
  • C++语言函数重载详解和示例
     C++函数重载的概念在实际开发中,有时候我们需要实现几个功能类似的函数,只是有些细节不同。例如把变量的值写入文件,变量的类型int、long、double、char,需要通过参数把变量......
  • 从C语言到C++语言
      ​​C++​​​ 读作“C加加”,是“CPlusPlus”的简称。顾名思义,C++是在​​C语言​​的基础上增加新特性。从语法上看,C语言是C++的一部分,C语言代码几乎不用修改就......
  • C/C++语言学习的策略
    断章取义C语言出现50年了,有很多内容已过时,至少有百分之二十的内容没有实用价值。C++更过份,对程序员来说,至少有百分之七十的内容没有实用价值。Linux系统也是,命令上千个,对程......