服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - C++图文并茂轻松进阶面向对象

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

2022-11-12 17:08清风自在 流水潺潺 C/C++

面向对象中对象是指具体的某一个事物,这些事物的抽象就是类,类中包含数据(成员变量)和动作(成员方法),接下来让我们一起详细了解

一、进阶面向对象(上)

面向对象的意义在于

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

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

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

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

生活中的类和对象

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

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

类和对象的意义

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

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

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

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

 

二、小结(上)

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

 

三、进阶面向对象(下)

类之间的基本关系

继承

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

组合

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

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

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

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

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

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

类的表示法

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

类的表示法 -- 简化

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

类的表示法 -- 改进1

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

类的表示法 -- 改进2

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

类的表示法 -- 改进3

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

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

类的表示法 -- 改进4

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

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

#include <stdio.h>

struct Biology {
  bool living;
};

struct Animal : Biology {
  bool movable;
  void findFood() { }
};

struct Plant : Biology {
  bool growable;
};

struct Beast : Animal {
  void sleep() { }
};

struct Human : Animal {
  void sleep() { }
  void work() { }
};

int main()
{
  return 0;
}

下面为输出结果:

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

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

 

四、小结(下)

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

到此这篇关于C++图文并茂轻松进阶面向对象的文章就介绍到这了,更多相关C++面向对象内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/weixin_43129713/article/details/123066390

延伸 · 阅读

精彩推荐
  • C/C++C语言数据结构实现字符串分割的实例

    C语言数据结构实现字符串分割的实例

    这篇文章主要介绍了C语言数据结构实现字符串分割的实例的相关资料,希望通过本文能帮助到大家实现这样的功能,需要的朋友可以参考下...

    爱思考的小鸟4272021-06-06
  • C/C++C++生成不重复的随机整数

    C++生成不重复的随机整数

    这篇文章主要为大家详细介绍了C++生成不重复的随机整数,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    pythontojava5282021-08-03
  • C/C++c++中的单例类模板的实现方法详解

    c++中的单例类模板的实现方法详解

    这篇文章主要介绍了c++中的单例类模板的实现方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友...

    PRO_Z9922021-08-25
  • C/C++C++常量详解二(常量形参,常量返回值,常量成员函数)

    C++常量详解二(常量形参,常量返回值,常量成员函数)

    这篇文章主要介绍了C++常量详解二(常量形参,常量返回值,常量成员函数),需要的朋友可以参考下...

    Jang19964772021-05-14
  • C/C++C语言深入讲解内存操作问题

    C语言深入讲解内存操作问题

    程序运行的目的是为了得到特定的结果,计算机本质上是用于计算的,既然是用于计算,就需要参与计算的数据,那这些数据就存储在内存中,计算之前参...

    清风自在 流水潺潺12012022-11-10
  • C/C++C语言对磁盘文件进行快速排序简单实例

    C语言对磁盘文件进行快速排序简单实例

    这篇文章主要介绍了C语言对磁盘文件进行快速排序简单实例的相关资料,需要的朋友可以参考下...

    okbase8092021-05-19
  • C/C++Opencv实现拼图板游戏

    Opencv实现拼图板游戏

    这篇文章主要为大家详细介绍了Opencv实现拼图板小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    -牧野-6242021-08-29
  • C/C++详解C++中String类模拟实现以及深拷贝浅拷贝

    详解C++中String类模拟实现以及深拷贝浅拷贝

    这篇文章主要介绍了详解C++中String类模拟实现以及深拷贝浅拷贝的相关资料,希望通过本文能帮助到大家,让大家实现这样的方法,需要的朋友可以参考下...

    xy9137418947102021-06-09