返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >怎样讲述C++中的C++基类
  • 203
分享到

怎样讲述C++中的C++基类

2023-06-17 17:06:25 203人浏览 安东尼
摘要

这篇文章给大家介绍怎样讲述c++中的C++基类,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。C++语言中有一个很重要的特性:Private派生确保C++基类中的方法只能被派生类的对象的方法间接使用,而不能被外部使用,除

这篇文章给大家介绍怎样讲述c++中的C++基类,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

C++语言中有一个很重要的特性:Private派生确保C++基类中的方法只能被派生类的对象的方法间接使用,而不能被外部使用,除非这些方法已经被重新定义,下面就进行详细说明。

继承是一个进程,通过继承,一个对象可以获得另一个对象的属性(包括函数),并可向其中加入属于自己的一些特征。作为C++语言的一种重要机制,用继承的方法可以自动为一个类提供来自另一个类的操作和数据结构

进而使程序设计人员在一个一般的类的基础上很快建立一个新的类,而不必从零开始设计每个类。当一个类被其他的类继承时,被继承的类称为基类,又称为父类。继承其他类属性的类称为派生类,又称为子类。

一般情况下,继承的进程起源于一个C++基类的定义,基类定义了其所有派生类的公有属性。从本质上讲,基类具有同一类集合中的公共属性,派生类继承了这些属性,并且增加了自己特有的属性。从任何已存在的类继承的实质就是建造新的派生类。

从一个基类派生的继承称为单继承,换句话说,派生类只有一个直接C++基类。单继承声明语句的常用格式为:

class 派生类名: 访问控制关键字 基类名  {    数据成员和成员函数声明  };

与此相对地,从多个基类派生的继承称为多继承或多重继承,也就是说,一个派生类有多个直接基类。在某些面向对象的语言(如Java)中不支持类间的多重继承而只支持单重继承,即一个类至多只能有一个直接父类,因此实现类似的功能需要借助接口等其他机制。而在C++中提供了多重继承的语法支持,使得问题变得简单了许多。多重继承声明语句的常用格式为:

class 派生类名: 访问控制关键字 基类名1, 访问控制关键字 基类名2,...  {    数据成员和成员函数声明  };

除了多重继承之外,一个派生类继承多个基类还有一种方法,就是把派生类作为基类再次供别的类继承,产生多层次的继承关系。例如类A派生类B,类B派生类C,则称类A是类B的直接基类,类B是类C的直接基类,类A是类C的间接基类。

类的层次结构也叫做继承链。还是上面的例子,当建立类C的对象时,类A的构造函数***被调用,接下来被调用的是类B的构造函数,***是类C的构造函数。析构函数的调用顺序正好相反。当一个派生类继承有层次的类时,继承链上的每个派生类必须将它需要的变量传递给它的基类。

在继承声明语句中,访问控制关键字用于说明在基类定义中所声明的成员和成员函数能够在多大范围内被派生类所访问。访问控制关键字可为public, private或protected。如果访问控制关键字为public。

则称派生类从C++基类公有继承,也称公有派生。如果访问控制关键字为private,则称派生类从C++基类私有继承,也称私有派生。现在笔者将公有继承和私有继承的具体区别列表如下。

通过上表,我们可以将两种派生的特点总结如下:

基类成员基类private成员基类public成员

派生方式

privatepublicprivatepublic
派生类成员不可见不可见可见可见
外部函数不可见不可见不可见可见

关于怎样讲述C++中的C++基类就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: 怎样讲述C++中的C++基类

本文链接: https://lsjlt.com/news/291121.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎样讲述C++中的C++基类
    这篇文章给大家介绍怎样讲述C++中的C++基类,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。C++语言中有一个很重要的特性:Private派生确保C++基类中的方法只能被派生类的对象的方法间接使用,而不能被外部使用,除...
    99+
    2023-06-17
  • C++基础概念讲述
    目录1.C++相关网站推荐2.C++和C的关系3.C++特性说明3.1与底层硬件紧密结合3.2对象生命周期的精确控制3.3Zero-Overhead Abstraction首先,通过...
    99+
    2024-04-02
  • C++primer类的基础精讲
    目录定义抽象数据类型初探this和构造函数访问控制和封装友元类的其他特性可变数据成员返回*this的成员函数友元类构造函数再探构造函数初始值列表默认构造函数的作用聚合类类的静态成员定...
    99+
    2024-04-02
  • C++抽象基类讲解
     公众号:Coder梁(ID:Coder_LT) 这一篇文章来聊聊抽象基类(abstract base class简称ABC)。 我们之前说过,在我们实现继承的时候,需要保...
    99+
    2024-04-02
  • C#枚举类型的基础讲解
    本篇内容主要讲解“C#枚举类型的基础讲解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#枚举类型的基础讲解”吧!对于C#枚举类型不仅可以提高程序的可读性,而且可以减少因底层值发生改变而导致的程...
    99+
    2023-06-18
  • 怎样深度剖析C++中的C++类型
    这期内容当中小编将会给大家带来有关怎样深度剖析C++中的C++类型,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在C++中,C++类模板不能直接使用,必须先实例化为相应的模板类,定义模板类的对象后,才可使...
    99+
    2023-06-17
  • Java和C#顶层声明概述是怎样的
    Java和C#顶层声明概述是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在向大家详细介绍Java和C#顶层声明之前,首先让大家分别了解下Java中的顶层...
    99+
    2023-06-17
  • C#中类与接口的区别讲解
    一、抽象类 抽象类是特殊的类,只是不能被实例化;除此以外,具有类的其他特性;重要的是抽象类可以包括抽象方法,这是普通类所不能的。抽象方法只能声明于抽象类中,且不包含任何实现,派生类必...
    99+
    2024-04-02
  • 对象在c++中怎么描述
    描述对象在 c++ 中有两种方式:引用:创建对象的别名,更改引用指向的对象将更改原始对象的状态。指针:创建指向对象的内存地址的别名,更改指针指向的对象将更改原始对象的状态。 在 C++...
    99+
    2024-05-08
    c++
  • C#Marshal类基本概念和入门实例讲解
    目录C# Marshal类基本概念及入门C# Marshal.Copy实现非托管指针和数组之间的转换挑战写文件读文件总结C# Marshal类基本概念及入门 marshal:直译为...
    99+
    2023-02-26
    C# Marshal类 Marshal类基本概念 Marshal类入门
  • c++中的基本IO类型详解
    引言 c++不直接处理输入和输出,而是通过标准库中的类型处理IO。IO的设备可以是文件、控制台、string。c++主要定义了三种IO类型,分别被包含在iostream、fstrea...
    99+
    2024-04-02
  • C++类模板与函数模板基础详细讲解
    目录函数模板类模板总结函数模板 当我们想要定义一个可以支持泛型的函数时,就要采用函数模板的方式了。所谓泛型就是可以支持多种类型的操作,比如我们定义一个compare操作,他可以根据传...
    99+
    2022-11-13
    C++类模板 C++函数模板
  • 怎样解析C++中的C++变量定义
    怎样解析C++中的C++变量定义,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。在使用C++变量变量时,通常要把C++变量名定义为容易使用阅读和能够描述所含数据用处的名称,而...
    99+
    2023-06-17
  • C++超集C++/CLI模块的基本类型
    数值类型 对于基本的数值类型,在C++/CLI中是可以直接映射为托管类型的数值的,可以同时应用于托管类型和非托管类型,编译器会将其自动转换。 基本类型System命名空间中对应的类注...
    99+
    2024-04-02
  • c++中的基本IO类型是什么
    这篇文章主要讲解了“c++中的基本IO类型是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“c++中的基本IO类型是什么”吧!引言c++不直接处理输入和输出,而是通过标准库中的类型处理IO...
    99+
    2023-06-19
  • C++中的类型推断问题与解决方案概述
    C++中的类型推断问题与解决方案概述引言:C++是一种静态类型的编程语言,即编译器在编译时需要确切知道每个变量的类型。然而,有时我们可能遇到类型不明确的情况,这给编程带来了一些复杂性。为了解决类型推断的问题,C++引入了auto和declt...
    99+
    2023-10-22
    解决方案 问题 类型推断
  • C/C++中虚基类详解及其作用介绍
    目录概述多重继承的问题虚基类初始化例子总结概述 虚基类 (virtual base class) 是用关键字 virtual 声明继承的父类. 多重继承的问题 N 类: cla...
    99+
    2024-04-02
  • c语言中enum类型的用法案例讲解
    11.10 枚举类型 在实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等。如果把这些量说明为整型,字符型或其它...
    99+
    2024-04-02
  • C++OOP对象和类的详细讲解
    目录C++OOP对象和类1.预备知识2.抽象和类2.1 数据抽象2.2 类2.3 接口3.C++中的类和对象3.1 C++类的定义3.2 C++对象的定义3.3 C++访问数据成员3...
    99+
    2024-04-02
  • C++ 中如何覆盖基类函数?
    c++++中,函数重写允许派生类覆盖基类函数,以扩展或修改其行为。其语法为:具有相同函数名具有相同函数签名使用override关键字 C++ 中函数重写的全面指南 在 C++ 中,函数...
    99+
    2024-04-13
    覆盖重写 基类函数 c++
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作