C++ | 面向对象思想(OOP)

【NOI级-C++程序设计:1、面向对象的程序设计思想 (OOP)】 1、定义:面向对象的程序设计(Object-Oriented Programming, OOP)是一种通过 “对象” 来组织程序的编程方式,它将数据(属性)和操作数据的函数(方法)捆绑在一起,形成一个独立的单元。因此,对象的抽象是类,类的具体化就是对象,是用户自定义的数据类型,定义了对象的属性和行为(即方法),也可以说类的实例是对象。目的:将数据(属性)和操作数据的函数(方法)捆绑在一起(即对象),并通过访问控制(private、protected、public)隐藏内部实现细节。 阅读详情

面向对象的基本思想是:从现实世界中客观存在的事物出发来构造软件系统,并在系统的构造中尽可能地运用人类的自然思维方式。

面向对象更加强调运用人类在日常生活的逻辑思维中经常采用的思想方法与原则,如抽象、分类,继承、聚合、多态等。

OOP:面向对象编程,是一种计算机编程架构。

OOP 的一条基本原则是:计算机程序是由单个能够起到子程序作用的单元或对象组合而成。

如下图,将实体的属性和行为抽象为对象的成员变量和成员方法:

其中,实体的属性是私有的,类比到对象的成员变量,也是私有的;实体的行为是公有的,类比到对象的成员方法,也是gongyou

OOP的设计模式的五项原则

1、单一职责原则

单一职责有2个含义,一个是避免相同的职责分散到不同的类中,另一个是避免一个类承担太多职责。减少类的耦合,提高类的复用性。

2、接口隔离原则

表明客户端不应该被强迫实现一些他们不会使用的接口,应该把胖接口中额方法分组,然后用多个接口代替它,每个接口服务于一个子模块。简单说,就是使用多个专门的接口比使用单个接口好很多。

该原则观点如下:
1)一个类对另外一个类的依赖性应当是建立在最小的接口上

2)客户端程序不应该依赖它不需要的接口方法。

3、开放-封闭原则

open模块的行为必须是开放的、支持扩展的,而不是僵化的。

closed在对模块的功能进行扩展时,不应该影响或大规模影响已有的程序模块。一句话概括:一个模块在扩展性方面应该是开放的而在更改性方面应该是封闭的。

核心思想就是对抽象编程,而不对具体编程。

4、替换原则

子类型必须能够替换掉他们的父类型、并出现在父类能够出现的任何地方。

主要针对继承的设计原则

1)父类的方法都要在子类中实现或者重写,并且派生类只实现其抽象类中生命的方法,而不应当给出多余的,方法定义或实现。

2)在客户端程序中只应该使用父类对象而不应当直接使用子类对象,这样可以实现运行期间绑定。

5、依赖倒置原则

上层模块不应该依赖于下层模块,他们共同依赖于一个抽象,即:父类不能依赖子类,他们都要依赖抽象类。

抽象不能依赖于具体,具体应该要依赖于抽象。

C++面向对象实战:银行卡管理系统设计与OOP思想落地 面向对象编程(OOP)是现代软件开发的核心范式,其核心思想是通过封装、继承和多态三大特性来组织代码,提升软件的可维护性、可复用性和可扩展性。在C++等语言中,OOP通过类与对象将数据与操作数据的方法绑定,从而模拟现实世界实体。其技术价值在于能够构建出结构清晰、职责分明、易于协作的大型复杂系统。在金融、游戏、企业应用等众多场景中,OOP都是构建核心业务模型的基石。本文以【银行卡管理系统】这一经典实战项目为例,深入剖析如何运用C++的【类设计】、【智能指针】等关键技术,将OOP思想从理论转化为可运行的工程实践, 阅读详情

相关推荐

C++ Prinmer Plus 学习笔记(第一章)

C++ Prinmer Plus 学习笔记(持续更新) (PS:参考书籍是C++Prinmer Plus 和易学C++) 什么是C++?   1:在C语言基础上添加了“面向对象编程”的支持;  2:继承了C语言的高效、简洁、快速和可移植性的传统; 3:模版特性提供了另一种全新的编程方法-------通用编程; 4:新术语对象、类、封装、数据隐藏、多态和继承等。 C语言编程原理

cnsstbsk的专栏 1194

开放封闭原则_开放/封闭原则

开放封闭原则I have to admit the first time I peeked at the academic definition of the Open/Closed Principle, its predicate was surprisingly clear to me. Leaving all of the technical jargon out of the pictur...

culi3118的博客 763

面向对象思想,c++编程思想

深入剖析面向对象机制,c++语法细节和使用规则。对于全面了解c++和编程很有用

C++常用设计模式

简单工厂模式是一种创建型设计模式,它提供了一种通过一个工厂类来创建同一类型的不同产品对象的方法。在简单工厂模式中,我们首先定义一个抽象基类或者接口,它代表着所有可能被创建的对象的共性。然后我们编写具体的子类实现这个接口,并实现各自的构造函数和其他成员函数。最后,我们编写一个工厂类,根据客户端传递过来的参数,决定创建哪一个具体的对象子类,并返回该对象的指针或引用给客户端。在这个示例中,Product 类是抽象基类或者接口,该类定义了所有可能被创建的对象的共性。

qq_43119867的博客 1202

剖析C++的面向对象编程思想

主要介绍了剖析C++的面向对象编程思想,C++的面向对象特性是其对C语言的重要拓展之处,需要的朋友可以参考下

思博伦Spirent TestCenter创建单播流uni-stream

Traffic Generator列表中会出现刚才创建的uni-stream,创建完成。通常测试情况下,主要对Ethenet II和IPv4 Header进行配置。(通常情况下,如果流配置比较规范,选择任意端口接收,也没问题。编辑uni-stream基本信息。配置本条流由STC哪个端口接收。

辗转反测的博客 1683

装饰器模式(c++)(单一职责型模式)

装饰器(Decrator)模式场景使用装饰器模式类图装饰器模式的优点: 场景 某一天,你的老板写一堆log类来分别打印错误信息和警告信息。 class Log{ public: virtual void WriteLog(const char *data) = 0; virtual char ReadLog(int number) = 0; }; class ErrorLog : publi...

Fawkess的博客 226

深入解析SVPWM七段式与五段式调制的电压波形差异及优化策略

本文深入解析了SVPWM七段式与五段式调制在相电压和线电压波形上的核心差异。七段式波形对称、谐波含量低,适合追求静音与性能的场景;五段式开关次数少、损耗低,适用于对效率与散热要求高的应用。文章提供了基于谐波与损耗权衡的优化策略与选型指南。

weixin_29216957的博客 440

面试官问你如何进行程序设计?——设计模式之七大原则——单一职责、里氏代换、开闭原则、依赖倒转以及C++简单实现

工人方法模式工人方法模式1、背景2、定义3、特征4、应用参考 工人方法模式 1、背景 2、定义 3、特征 4、应用 参考

JMW1407的博客 2269

SuperMap iDesktop 9D三维倾斜摄影数据处理

OSGB格式的三维倾斜摄影数据进入时空大数据平台之前需要进行数据优化和格式转换

weixin_43204897的博客 1131

YOLOv12改进前必看 - YAML模型配置文件详细解读(再也不用担心通道数不匹配) 附网络结构图

YOLOv12的模型配置文件在中,里面包含yolov12的以及的不同大小的模型,本文将详细介绍一下YOLOv12模型文件中各参数的含义。

Limiiiing的博客 3276

入门设计原则C++实现一:单一职责原则

上面代码Animal类中的behavior方法做了所有操作,不管传入的参数是何值,执行的操作是固定的。但实际并不是我们想要的,比如当传入是燕子/鱼的时候,就会出现违背常理结果。究其原因就是animal类扮演的角色过多,处理出现异常了,这种就是违背的单一职责原则较为典型的例子。此时需要考虑将类拆分类1,类2, 类1负责功能A,类2负责功能B。变更引起的风险降低,变更是必不可少的,如果接口的单一职责做得好,一个接口修改只对相应的实现类有影响,对其他的接口无影响,这对系统的扩展性、维护性都有非常大的帮助。...

鲁点点的博客 656

Thingsboard PE智慧运维仪表板实例(一)【智慧排口截污实例】

以该实际落地项目为案例,跟着我一起搭建智慧运维大屏!社区版和专业版都通用。本文是致力于快速搭建,所以不会详细去讲Thingsboard的知识点,只讲如何配置和使用部件。

weixin_67440240的博客 1721

【C++】oop(面向对象)思想

我们都知道C语言是面向过程的语言,C++是半面向对象的语言。 C语言中要实现一个功能的话就得将功能拆分成一个一个小的模板,模块中实现功能的时候是通过函数实现的,这就是所谓的模块化语言,它会形成函数调用链,然后最终形成最后的功能。 C++是面向对象的语言,那它到底是怎样实现的呢?第一个就是所谓的oop思想 一、oop思想 1、计算机语言的设计目的和意义 模拟现实。通过计算机语言实现现实中的问题 2、oop思想用图表示为: opp思想简单来说就是将属性和行为结合起来 二、代码实现计算机与现实世界的转换 例如:

qq_43411563的博客 1336

linux 内核OOM问题定位-SLAB_DEBUG

首先看slabinfo按的size排序查看 slub object,可以查看 space 总占用大小,及objects个数判断泄漏点 为kmalloc-128。那个泄露多看/sys/kernel/debug的slab/kmalloc*-的alloc-traces和free-traces。SLAB或者SLUB有一个用就可以,改menuconfig没有clean会覆盖之前的更改,现在看一下编译的过程。或者配置defconfig,配置完之后需要clean后再编译。1,配置menuconfig。

陌上花开缓缓归以的博客 900

手把手教你学simulink实例--基于Simulink的航空航天器飞行轨迹规划与仿真详细介绍

航空航天器飞行轨迹规划是实现高效、安全和精确飞行的关键技术。通过Simulink进行航空航天器飞行轨迹规划与仿真,可以验证控制算法的有效性、优化飞行路径,并降低开发成本。以下是如何在MATLAB和Simulink中设计并仿真一个航空航天器飞行轨迹规划系统的详细步骤。通过上述步骤,我们成功设计并实现了基于Simulink的航空航天器飞行轨迹规划与仿真系统。该系统能够根据实时环境变化动态调整飞行轨迹,从而提高飞行效率、降低燃料消耗并提升安全性。

MHD0815的博客 390

【C++ | 面向对象思想】 C++ 的面向对象(OOP)思想详解:抽象、封装、继承、多态

👉本文介绍了面向过程和面向对象的区别,然后介绍了几个面向对象的特性:抽象、封装、继承、多态。

wkd_007的博客 1923

26. 如何给 SAP BTP Cloud Foundry 环境分配运行时内存

摘要:本文解答了SAP BTP Cloud Foundry环境中Space可用内存为0MB的问题。指出Space内存配额取决于Org配额分配,其计算方式为Org总配额减去所有运行中应用实例的内存预留总和。详细解释了SAP BTP的资源分配层级(Global account→Subaccount→Environment→Org→Space),并说明如何通过Global account的Entity Assignments查看Memory Plan配额分配(以GB为单位)。最后建议遇到问题的用户检查Subacc

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1266

【C++】OOP面向对象思想

面向对象编程(Object-Oriented Programming,OOP)是一种编程范式,它将现实世界中的实体抽象为对象,通过对象之间的交互来设计软件系统。多态性是指允许不同类的对象对同一消息做出响应的能力,即同一个接口可以被不同的对象以不同的方式实现。抽象是简化复杂性的一种方式,它只关注对象的外部特征,而不是内部实现细节。接口是一种规范,它定义了对象必须实现的方法,但不定义这些方法的具体实现。类是创建对象的蓝图,它定义了对象的属性和方法。对象是类的实例,它是具有状态和行为的实体。

m0_46676283的博客 852

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

C++ 面向对象体系(OOP)背后的哲学思想

用 Go 语言写了一些算法,被不伦不类的语法快把我折磨疯了。还是回归到 C++ 写算法吧。我觉得 C++ 的面向对象体系应该是所有语言中最科学的。这里简单列举若干特点,算是一个基本的总结。 C++ 引入OOP机制,其根本思路是,要让程序员利用 class 机制自行创建新数据类型。新的数据类型从形式上看,应该与 C++ 内置的 int、double 等数据类型完全一样。 例如,浮点数数组求和算法如下...

程序猿视角 896

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

面向对象编程(OOP)的核心思想及其在C++中的深入探索

在C++中,类是通过关键字class定义的,它包含了数据成员(属性)和成员函数(方法)。height = h;上述Rectangle类封装了矩形的宽度和高度,并提供了设置这两个属性和计算面积的方法。

铭渊老黄 975

利用C++面向对象OOP思想实现迷宫maze的路径寻找问题(详解加代码)

问题题目: 用OOP完成迷宫路径的寻找问题 软件运行要求如下: 请输入迷宫的行列数: 5 5 请输入迷宫路径节点信息(1表示不能走,0表示能走) 开始寻找迷宫路径(从左上角到右下角的一个可通行的路径): 迷宫存在可通行的路径: 程序所包含的头文件和如下 #include "targetver.h" #include<iostream> #include<string.h&gt...

Lebron 2432

C++面向对象编程实战:从潜艇大战游戏开发掌握OOP核心思想

面向对象编程(OOP)是一种以对象为核心的编程范式,其核心思想是将数据和操作数据的方法封装成独立的实体。通过封装、继承和多态三大特性,OOP能够构建出结构清晰、易于维护和扩展的软件系统。在游戏开发领域,这种设计模式尤其重要,它能够将游戏世界中的角色、道具、特效等元素自然地映射为程序中的对象,并通过对象间的交互实现复杂游戏逻辑。以经典的2D射击游戏潜艇大战为例,玩家战舰、敌方潜艇、发射的炸弹以及爆炸特效都可以被抽象为具有特定属性和行为的类。通过设计Game、Player、Submarine、Bomb等核心类,

weixin_29010003的博客 311

C++ 面向对象(OOP)思想之访问控制 public、private、protected 总结

C++中的类 类是一种将抽象转换为用户定义类型的C++工具,他将数据和操作数据的方法组合成一个整洁的包。下面以抽象表示股票的类来做一个说明(应该学习的是这里的抽象过程和方法): 首先应该考虑如何表示股票?可以将一股作为基本单位,定义一个表示一股股票的类。如下: class Stock { public: Stock(std::string name, double prices, ...

paradox_1_0的博客 356

C++ 面向对象(封装)

学习记录

wakkkaaa的博客 772

【OOP编程思想小感悟】

  写点啥。。。开头省略1000字,哈哈,开始讨论OOP编程思想啦~ 我来翻译一下OOP吧(面向对象编程)    最近一直在看C++的一本书,看到书中有这样一句话(我按我的意思概括一下哈):OOP是一种编程思想,和具体的编程语言无关。(这是真的么?) 我们继续说哈,话说我也已经工作快三年了,不过一直在做运维方面的工作(其实我不太喜欢,太麻烦),所以在技术方面略显木讷。...

weixin_30339969的博客 159
上一篇: C++ | new和malloc的区别
下一篇: C++ | 函数重载
H_Expect
博客等级 码龄8年 20粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值