• 【C++】面向对象的理解


    https://www.cnblogs.com/ideal-20/p/11050146.html

    面向对象是一种编程思想,所有事物都可以看做对象,即“万物皆对象”,任何物体都可以归为一类事物,而每一个个体都是一类事物的实例
    面向对象有三大特征:封装、继承、多态

    面向过程和面向对象的优缺点

    面向过程

    概念:面向过程是一种以过程为中心的编程思想,其原理就是将问题分解成一个一个详细的步骤,然后通过函数实现每一个步骤,并依次调用。

    举个例子,汽车发动、汽车熄火,这是两个不同的事件,对于面向过程而言,我们关心的是事件本身,因此我们会使用两个函数完成以上两个动作,然后依次调用即可。

    优点性能上它是优于面向对象的,因为类在调用的时候需要实例化,开销过大。

    缺点:不易维护、复用、扩展

    用途:单片机、嵌入式开发、Linux/Unix等对性能要求较高的地方

    面向对象

    概念:面向对象则是一种以对象为中心的编程思想,就是通过分析问题,分解出一个一个的对象,然后通过不同对象之间的调用来组合解决问题。建立对象的目的不是为了完成某个步骤,而是为了描述某个事物在解决整个问题的过程中的行为。

    如上面的例子,汽车发动、汽车熄火,对于面向对象而言,我们则关心的是汽车这类对象,两个事件只是这类对象所具备的行为。

    优点易维护易复用易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护

    缺点:一般来说性能比面向过程

    封装

    将一类事物的属性和行为抽象为一个类,隐藏信息,留有公开接口访问操作,提高数据的隐蔽性的同时,使代码模块化,复用性更高。

    封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式
    简单的来说就是我将不想给别人看的数据,以及别人无需知道的内部细节, “锁起来” ,我们只留下一些入口,使其与外部发生联系。

    好处

    隐藏实现细节,提供公共的访问方式
    提高了代码的复用性

    继承

    公共行为属性抽象为一个父类,每一个子类都是一个特殊的父类,有父类的属性和方法,也有自己的属性和方法。进一步的提高了代码的复用性

    优点

    提高了代码的复用性,提高了代码的维护性(通过少量的修改,满足不断变化的具体要求),让类与类产生了一个关系,是多态的前提。

    缺点

    但是缺点也很显著:让类的耦合性增强,这样某个类的改变就会影响其他和该类相关的类。

    多态

    父类的引用变量可以指向任何一个子类的引用变量(向上转型)。
    多态是同一个行为具有多个不同表现形式或形态的能力。
    多态是在不同继承关系的类对象,去调用同一函数,产生了不同行为。比如Student继承了Person。Person对象买票全价,Student对象买票半价。

    多态的构成条件

    1. 必须通过基类的指针或者引用调用虚函数

    虚函数:在类的普通成员函数前加上virtual关键字

    1. 被调用的函数必须是虚函数,且派生类必须对基类虚函数进行重写
  • 相关阅读:
    Mybatis集成日志组件,logback日志框架
    clickhouse单机部署
    Linux1._基本指令
    如何在Vue3中配置国际化语言i18n
    【读书笔记】人月神话(一)
    使用 Dapr JS SDK 让 Nest.js 集成 Dapr
    105.am40刷机(linux)折腾记1-前期的准备工作1
    Java --- JVM程序计数器(PC寄存器)
    第09章 MyBatisPlus实现查询功能
    区块链技术与应用 【全国职业院校技能大赛国赛题目解析】第二套区块链系统部署与运维
  • 原文地址:https://blog.csdn.net/kin_16/article/details/126467706