当前位置: 首页 > article >正文

C++的三大特性,简易说明

C++作为一种面向对象的编程语言,其三大特性分别为

封装(Encapsulation)、继承(Inheritance)和多态(Polymorphism)。

1、封装(Encapsulation)

它指的是将数据(属性)和操作数据的方法(函数)封装在一个类中,形成一个独立的单元。

封装通过访问控制符(如public、protected、private)来实现。

public成员可以在类外被访问、

protected成员只能被类本身及其派生类访问、

private成员则只能在类内部被访问。

封装的主要目的是隐藏对象的内部实现细节,只对外提供公共的接口。

通过封装,可以保护对象的数据不被随意访问和修改,从而提高了程序的安全性和可维护性。

生活事例

我有一个电视遥控器。遥控器上有很多按钮,如电源键、音量键、频道键等,但我不需要知道遥控器内部是如何工作的,比如信号是如何传输到电视上的,或者电池是如何供电的。你只需要知道如何使用这些按钮来控制电视。

2、继承(Inheritance)

它允许一个类(子类或派生类)继承另一个类(父类或基类)的属性和方法。

通过继承,子类可以扩展或修改父类的功能,同时保持与父类的关系。

C++支持单继承、多重继承、多层继承。

在单继承中,一个子类只能继承一个父类;如男人类继承人类。

在多重继承中,子类可以继承父类,孙子类可以继承子类;

如程序员类继承工人类,工人类继承人类。

在多层继承中,一个子类可以同时继承多个父类。

如男程序员同时继承男人类和工人类。

继承不仅减少了代码冗余,还使得程序结构更加清晰、逻辑更加简洁。

生活事例

如我有一个学生证,这个学生证不仅包含了我的个人信息(如姓名、学号等),还附带了图书馆借阅证的功能。这里的图书馆借阅证功能就可以看作是继承自另一个“借阅证”类的特性。

3、多态(Polymorphism)

它指的是同一个接口(操作或函数)可以作用于多种类型的对象上,并产生不同的行为。

多态分为静态多态和动态多态两种:

  • 静态多态:主要通过函数重载和运算符重载实现。在编译时,编译器根据函数的参数类型或数量来确定调用哪个函数。
  • 动态多态:主要通过虚函数实现。在运行时,根据对象的实际类型来确定调用哪个函数。这要求基类中有虚函数,并且派生类重写了这些虚函数。

多态的存在大大提高了程序的扩展性和可维护性

通过多态,可以在不修改现有代码的情况下,增加新的功能或修改现有功能

生活事例:在动物园里,可能会看到各种各样的动物,如猫、狗、羊等。它们都可以发出叫声,虽然都是“发出叫声”这个动作,但不同动物发出的声音不太相同。如狗是“汪”、猫是“喵”、羊是“咩”,这就是多态的一个体现。


http://www.kler.cn/a/301053.html

相关文章:

  • React|bpmn.js|react-bpmn使用示例详解
  • Pytest-Bdd-Playwright 系列教程(12):步骤参数 parsers参数解析
  • 【Pythonr入门第二讲】你好,世界
  • 探索Python PDF处理的奥秘:pdfrw库揭秘
  • 医学图像语义分割:前列腺肿瘤、颅脑肿瘤、腹部多脏器 MRI、肝脏 CT、3D肝脏、心室
  • Python设计模式详解之5 —— 原型模式
  • 利用命令模式构建高效的手游后端架构
  • 使用mingw64 编译 QT开发流程
  • 快速上手 | 数据可观测性平台 Datavines 自定义SQL规则使用指南
  • Android Studio 2024最新版Hello World
  • docker-nginx数据卷挂载
  • 如何在Android 12 aosp系统源码中添加三指下滑截图功能
  • 什么是CPU、GPU、NPU?(包懂+会)
  • 基于微信小程序的宿舍报修系统的设计与实现
  • linux 安装three.js
  • linux kernel 6.x 用户态地址空间探究
  • ICETEK-DM6437-AICOM—— DMA直接存储器访问设计
  • JD18年秋招笔试疯狂数列python解答
  • 使用Docker快速启动Nacos集群
  • RepLKNet架构详解
  • 在 Vue 2 中使用 Axios 发起 POST 和 GET 请求
  • C#学习 深入理解委托、匿名方法、Lamda表达式、Linq;
  • 【CTF Web】BUUCTF Upload-Labs-Linux Pass-13 Writeup(文件上传+PHP+文件包含漏洞+PNG图片马)
  • 点亮第一盏LED灯 2),stm32CubeMX在线导入F103C8T6芯片包
  • Three 渲染器(二)
  • 如何将Windows风格的剪切和粘贴添加到Mac访达中