news 2026/5/23 9:22:04

C++图文并茂轻松进阶面向对象

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C++图文并茂轻松进阶面向对象

一、进阶面向对象(上)

面向对象的意义在于

  • 将日常生活中习惯的思维方式引入程序设计中
  • 将需求中的概念直观的映射到解决方案中
  • 以模块为中心构建可复用的软件系统
  • 提高软件产品的可维护性和可扩展性

类和对象是面向对象中的两个基本概念

  • 类∶指的是一类事物,是一个抽象的概念
  • 对象∶指的是属于某个类的具体实体
  • 类是一种模型,这种模型可以创建出不同的对象实体
  • 对象实体是类模型的一个具体实例

注:一个类可以有很多对象,而一个对象必然属于某个类。

生活中的类和对象

类和对象的意义

类用于抽象的描述一类事物所特有的属性和行为

  • 如:电脑拥有CPU,内存和硬盘,并且可以开机和运行程序

对象是具体的事物,拥有所属类中描述的一切属性和行为

  • 如:每一只老虎都有不同的体重,不同食量以及不同的性情

二、小结(上)

  • 面向对象是当今软件开发中的重要方法
  • 类和对象是面向对象理论中的基本概念
  • 类和对象均来源于日常生活中
  • 每个类可以有多个对象
  • 每个对象必然属于某个类

三、进阶面向对象(下)

类之间的基本关系

继承

  • 从已存在类细分出来的类和原类之间具有继承关系( is-a )
  • 继承的类(子类)拥有原类(父类)的所有属性和行为

组合

  • 一些类的存在必须依赖于其它的类,这种关系叫组合
  • 组合的类在某一个局部上由其它的类组成

类之间的基本关系 -- 继承

惠普电脑和苹果电脑都继承于电脑,具备电脑的所有特征。

类之间的基本关系 -- 组合

类的表示法

类的表示法 -- 简化

类的表示法 -- 改进1

类的表示法 -- 改进2

类的表示法 -- 改进3

这有点代码的味道了,那么如何用程序设计中的概念描述类的属性和行为?下面做最终改进。

类的表示法 -- 改进4

下面把上面表示方法写成代码,看看编译器会不会报错吧。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

#include <stdio.h>

structBiology {

boolliving;

};

structAnimal : Biology {

boolmovable;

voidfindFood() { }

};

structPlant : Biology {

boolgrowable;

};

structBeast : Animal {

voidsleep() { }

};

structHuman : Animal {

voidsleep() { }

voidwork() { }

};

intmain()

{

return0;

}

下面为输出结果:

可以看到,编译器并没有报错,也就证明面向对象那种表示方法是可以的。

四、小结(下)

  • 类之间可以存在继承关系或组合关系
  • 继承关系中子类拥有父类的一切属性和行为
  • 组合关系是类之间整体和部分的关系
  • 类及类之间的关系可以有不同的表示法
  • 编译器对类的表示法有具体的要求


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/23 9:17:16

linux基础与应用 linux系统常用技巧

&#xff11;、处理特殊的文件名假设Linux系统中有一个文件名叫“-aaa”&#xff0c;如果我们想对它进行操作&#xff0c;例如现在要删除它&#xff0c;如果我们按照一般的删除方法在命令行中输入rm -aaa命令&#xff0c;界面将会提示我们是无效选项&#xff08;invalid option…

作者头像 李华
网站建设 2026/5/23 9:15:58

DownKyi完整指南:如何轻松下载B站8K超高清视频的终极教程

DownKyi完整指南&#xff1a;如何轻松下载B站8K超高清视频的终极教程 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&am…

作者头像 李华
网站建设 2026/5/23 9:15:35

树莓派5 SWD调试与Arm DS配置实战指南

1. 树莓派5调试环境搭建全指南作为一名嵌入式开发老手&#xff0c;我最近在调试树莓派5时发现官方文档存在不少细节缺失。本文将手把手带你完成从硬件连接到软件配置的全流程&#xff0c;重点解决三个核心问题&#xff1a;如何正确连接SWD调试接口、如何配置Raspberry Pi OS启用…

作者头像 李华
网站建设 2026/5/23 9:14:32

QUIC应用实践

QUIC应用实践 本篇&#xff1a;QUIC 系列 ④/④ QUIC应用实践 系列总览见 QUIC协议系列导读 传输与连接机制见前三篇&#xff1b;上线 HTTP/3 还要面对 QPACK 头部压缩、UDP 防火墙、Alt-Svc / Happy Eyeballs、Wireshark 解密 与 面试排障。本篇集中 HTTP/3 映射、部署调试…

作者头像 李华
网站建设 2026/5/23 9:13:21

ppInk:Windows上最强大的免费屏幕标注工具终极指南

ppInk&#xff1a;Windows上最强大的免费屏幕标注工具终极指南 【免费下载链接】ppInk Fork from Gink 项目地址: https://gitcode.com/gh_mirrors/pp/ppInk 你是否曾在在线会议中想要快速圈出屏幕重点却找不到合适的工具&#xff1f;或者作为教师需要实时标注课件内容&…

作者头像 李华
网站建设 2026/5/23 9:13:14

光线追踪内存带宽优化与量化压缩技术解析

1. 光线追踪的内存带宽瓶颈解析在计算机图形学领域&#xff0c;光线追踪技术通过模拟光线与物体的物理交互来实现真实感渲染。随着场景复杂度从早期的数万个三角形增长到如今的数亿级别&#xff0c;内存带宽已成为制约性能的关键瓶颈。现代GPU的算力每18个月翻倍&#xff0c;而…

作者头像 李华