泛型编程 vs. 面向对象

面向对象编程和泛型编程详解 本文系统介绍了面向对象编程(OOP)和泛型编程两大核心范式。OOP部分详细阐释了封装、继承、多态三大特性,通过Python、C++、Java三语种示例代码展示了类定义、属性封装、方法重写等实现方式。泛型编程部分重点讲解了类型参数化思想,对比了C++模板(编译期实例化)和Java泛型(类型擦除)的不同实现机制,并提供了通用栈数据结构的完整实现示例。全文通过逐行注释的代码演示,突出展现了两种范式在代码复用、类型安全等方面的核心价值,所有概念和实现均参考权威技术文档和经典教材。 阅读详情
  1. 面向对象:封装(数据抽象)是基础,继承是手段,多态是目的;泛型编程:参数化类型(概念抽象)是基础,模板是手段,通用是目的

  2. 面向对象是运行时问题空间的多态,泛型编程是编译时算法空间的多态

  3. OO以Type为中心,GP以Concept为中心,而Concept完全独立于Type;OO的type是显式定义的,type之间的关系也是显式定义的,是语言支持的 ;GP的Concept是由算法隐式定义的,Concept之间的关系,是无法用目前的C++语法直接表达的;Concept的Model完全可以是毫无关系的Type,refinement独立于inheritence,original concept与其refinement concept的model之间可以毫无关系

  4. 以GP写就的算法,自动满足最小接口原则,无需为其参数定义形式化的类型;在OO中,这种形式化的Type具有的操作往往不是所有用到该Type的算法都会用到的

  5. OOP支持二进制组件形式的复用,GP支持源码层级的复用;与二进制码相比较,源码天生具有更多信息和更高级别,所以泛型编程支持更丰富的构件,但其代价是较弱的执行期动态性;你无法通过STL完成CORBA所能完成的功能,反之亦然,两种技术相互补充

 
CCS配置MSPM0G3507(七) 编码器(TIMER-QEI) 1.选择时钟源 BUSCLK2.时钟分频配置为1分频3.分频系数配置为14.若勾选 Start ,则生成程序后会自动开启定时器的计数,否则需手动在程序中开启5.Load Value 设置为65535。 阅读详情

相关推荐

MIT Bevfusion环境安装 Docker方式,nuscenes数据处理

Bevfusion环境安装,数据生成报错解决module 'numpy' has no attribute 'long';most likely due to a circular import。bevfusion docker环境

Jack_Man_N的博客 1144

面向对象编程与泛型编程

C++ Primer

知行合一 1507

线性回归LinearRegression

对视频中线性回归算法的相关内容进行总结与记录 文章目录一、理论基础二、实例2.1 一元线性回归2.1.1 推导过程2.1.2 代码实现(基于numpy)2.1.3 代码实现(基于sklearn)2.2 多元线性回归2.2.1 代码实现(基于numpy)2.2.2 代码实现(基于sklearn) 一、理论基础 回归 通常是指利用某个函数,尽可能把数据样本点“串”在一起,用于描述输入变量和输出变量间的变化关系 线性回归 特点:用来把数据“串”起来的那个函数是线性的 (一元线性回归(一个自变量) &a.

邱邱邱的博客 1068

【C++】C++面向对象,泛型编程总结篇(封装,继承,多态,模板)|(秋招篇)

【C++】C++面向对象,泛型编程总结篇(封装,继承,多态,模板)|(秋招篇)

weixin_46274756的博客 1789

从零到一:如何用YOLOv8和PyQt5打造一个高效的路面坑洞检测系统

本文详细介绍了如何利用YOLOv8和PyQt5开发一个高效的路面坑洞检测系统。从环境配置、数据采集标注到模型训练优化,再到PyQt5界面开发与系统集成,提供了完整的实战指南。该系统结合深度学习技术,显著提升了道路检测的准确性和效率,适用于各类道路维护场景。

weixin_29047919的博客 308

Dofbot机械臂从零部署笔记(1)——ROS之创建URDF模型、配置Moveit和MotionPlanning

Dofbot机械臂从零部署笔记(1)——ROS之创建URDF模型、配置Moveit和MotionPlanning

takedachia的博客 8699

(三)面向对象编程与泛型编程比较

OOP 面向对象要有class与class,以及之间的继承关系、虚函数 面向对象编程企图将datas与methods绑在一起 GP 泛型编程是将datas和methods分开来 标准库中用容器存储数据,用算法处理数据 算法的操作通过迭代器确定操作范围,访问容器中的元素 优点 容器和算法的开发团队可以独立开发,只要双方之间将接口规定好 所有的算法,其最终涉及元素本身的操作,无非就是比大小 bool strLong(const string& s1, const string&a

Mirevas的博客 721

C++ muduo网络库知识分享01 - Linux平台下muduo网络库源码编译安装

Muduo is a multithreaded C++ network library based on the reactor pattern. muduo库的介绍就是:一个基于reactor反应堆模型的多线程C++网络库。 muduo网络库是C++语言开发的一个非常优秀的网络库,作者陈硕,muduo网络库在多线程环境下性能非常高,该系列文章会分享一些muduo库源码的知识,包括它的线程池源码...

大秦坑王的专栏 3万+

面向对象编程(OOP)与泛型编程的区别及代码说明

泛型编程的核心思想是将算法和数据结构与具体的数据类型解耦合,使得代码能够适用于多种数据类型,提高代码的重用性和可扩展性。OOP的核心思想是将现实世界中的概念和关系映射到程序中,通过封装、继承和多态等特性来实现代码的重用性、可维护性和可扩展性。而泛型编程使用参数化类型和函数来实现通用的算法和数据结构,通过类型参数化来实现代码的通用性和灵活性。使用场景不同:面向对象编程更适用于描述具体的实体和对象之间的关系,如模拟现实世界的场景;而泛型编程更关注通用的算法和数据结构的设计和实现,强调代码的通用性和重用性。

Kegi_的博客 1001

RK3588 C-PHY摄像头驱动升级踩坑记:从‘Only CSI2 supported’报错到成功取流

本文详细记录了在RK3588平台上调试C-PHY摄像头驱动的全过程,从‘Only CSI2 supported’报错分析到成功取流。内容涵盖C-PHY与CSI-2协议差异、SDK版本对比、V4L2框架下的bus-type解析机制,以及硬件排查与寄存器调优实战经验,为嵌入式Camera驱动工程师提供宝贵参考。

weixin_42522374的博客 125

FAST-LIVO2 源码精读(十六):接入自定义传感器——多雷达适配与内外参标定

本文是「FAST-LIVO2 激光-惯性-视觉里程计源码精读」专栏第十六篇。上一篇拆解了中每个关键参数的物理含义与调参路径,并反复强调外参RclPcl与时间偏移配错即全局失效;本篇承接这一悬念,回答更前置的工程问题——如何把 FAST-LIVO2 接到一套全新硬件上:新雷达如何通过的类型分支适配、相机内参与畸变模型如何配置、两组外参与时间偏移如何标定出来并填入 YAML,最后给出一份落地检查清单。

PX4-SLAM-PNC 199

【面向对象】泛型编程

泛型编程、函数模板、类模板、类模板的特化、智能指针类模板、单例类模板

weixin_45093118的博客 548

Langchain cannot connect with Azure SQL Database

Langchain 无法连接到 Azure SQL 数据库

suiusoar 633

面向对象编程VS泛型编程

面向对象编程VS泛型编程 1、面向对象浅析         OOP是对data&&operation的封装,是对同类事物的抽象,跟结构化编程相比它更接近自然语言。继承使得OO具有了更强的表达能力,进一步地接近了自然语言的属性。而多态则是OO的最为巧妙和强大的地方,它催生了一系

个人独立博客http://www.acb0y.cn/ 2436

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

5:OOP面向对象编程 VS GP 泛型编程

本质上最后还是通过比较某个数字或者字母的大小来对比的为什么list不能使用::sort()排序代码里面对于迭代器的操作 说明这个迭代器必须是随机访问的迭代器 具有随机访问的功能 ,所以list的特性(链表 ) 决定它不能使用这个全局定义的sort 只能通过内部去封装实现一个sort 以实现对应的功能。

weixin_52243202的博客 445

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

C++STL与泛型编程(4)OOP(面向对象编程) Vs. GP(泛型编程)

文章目录OOP和GP为什么list不能使用标准库中的::sort算法?采用GP的好处 OOP和GP OOP将datas和methods关联在一起 GP将datas和methods分开 为什么list不能使用标准库中的::sort算法? 因为标准库的sort的算法用到了随机访问迭代器(RandomAccessIterator),而list链表所提供的迭代器不能随机访问,所以链表不能使用标准库中的::...

weixin_43116900的博客 286

侯捷STL 9. OOP 面向对象编程 vs GP 泛型编程

gunc 2.9 用的 OOP 比较少,继承关系很少,所以比较易读OOP: 数据和操作,放在同一个 class 里在标准库中如 list,list有 sort() 操作,sort() 是放在类内的GP: 将数据和操作分开vector 和 deque 内部就没有 sort(),sort() 在 algorithm 里利用全局函数来排序,就要用到迭代器,用 c.begin() 和 c.end() 告诉算法范围,就可以进行排序了。

m0_73602247的博客 175

侯捷C++STL 体系结构与内核分析:面向对象编程VS泛型编程

面向对象编程试图将数据、方法整理在一起。 泛型编程则相反,试图将数据和方法分开。 泛型编程的数据和方法可闭门造车,各干各的,分开开发。 所有算法都涉及到元素比大小,会用到操作符重载或者自定义函数。 ...

weixin_39770712的博客 139

C++ Primer Plus_读书笔记_第1章 预备知识

第1章 预备知识 32 1.1 C++简介 32 1.2 C++简史 33 1.2.1 C语言 34 1.2.2 C语言编程原理 34 至上而下:建立大型框架,再不断分解,直到分解为可以编写的程序为止 1.2.3 面向对象编程 36 面向对象(OOP): 类:规定一个物体的各种数据,以及对些物体的操作 对象:类似对象 类就像int的类型,对象就像变量a 自下而上:先定义类,在编写程序 1.2.4 C++和泛型编程 37 泛型编程:也就是模板化编程,就是建立一个套子,在对不同的数据.

aiqq136的博客 172

【带头学C++】----- 一、 基础知识 ---- 入门篇(上,简单了解)

第一章:C++入门。本章主要介绍一下c++的历史和一些基础知识,包括学习c++的环境搭建的一些链接,大家感兴趣可以看看。

Phofomy的博客 147

【2】VS Code 新建上位机项目---C#面向对象编程

静态方法主要应用在程序的入口,或者需要在其他的类中,去共享这个变量或方法,可以适当的使用静态(static)修饰。补充:使用属性的时候,有的地方也可以用方法代,但是设计的时候,如果你侧重的是属性(比如需要在dgv中显示)就要用属性,如果是单独的行为,可以用方法。相当于将list<>的索引值变成键,K和V的类型也是要提前先定义的,是字符串就必须全部是字符串,是对象也只能是同一类型的对象,适用于快速索引的情况。根据需求,你希望用户创建对象的时候,做哪些初始化的工作,可以放到有参数的构造方法。

hello 1223

从C语言转Java,我踩过的那些坑:SCAU面向对象编程课后题实战复盘

本文分享了从C语言转向Java开发过程中遇到的典型问题及解决方案,特别针对SCAU面向对象程序设计课后习题进行实战复盘。内容涵盖基础语法差异、面向对象思维转换、异常处理、集合框架使用等核心知识点,帮助开发者顺利完成编程范式转换,掌握Java开发精髓。

weixin_29209825的博客 340

C++ 机房预约系统(一):系统整体介绍和分析、系统具体需求分析、项目创建和文件添加、系统主菜单界面、系统接口和框架搭建、退出功能实现

C++ 机房预约系统(一):系统整体介绍和分析、系统具体需求分析、项目创建和文件添加、系统主菜单界面、系统接口和框架搭建、退出功能实现

UUUUU22的博客 943

C++基础学习(01)--(介绍,环境配置,基本语法,注释)

文章目录目录一. c++介绍二. c++开发环境到的配置三. c++基本语法四. c++注释 目录 一. c++介绍 C++ 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。 C++ 被认为是一种中级语言,它综合了高级语言和低级语言的特点。 C++ 是由 Bjarne Stroustrup 于 1979 年在新泽西州美利山贝尔实验室开始设...

wangzi11111111的博客 312
上一篇: The C# Programming Language Notes
下一篇: 中华菜系(一)
Image_Graphics
博客等级 码龄20年 18粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值