趣谈 C++ 中反人类的翻译
qihemm 2025-06-10 16:25 44 浏览 0 评论
作者 | 朱并作
责编 | 刘静
出品 | CSDN(ID:CSDNnews)
说起C++,我想在大多数程序员心里的第一印象是非常复杂的,C++的学习曲线是非常陡峭的。
我自己在学习C++的过程中也花费了很多的时间。个人认为造成C++陡峭的学习曲线的原因之一就是国内对C++的功能特性翻译的反人类。
这些反人类的翻译严重挑战了我对生活常识的理解。而我个人总是喜欢把复杂的概念都转换成方便理解的生活常识。
下面的一些概念是我自己在学习C++中碰到的一些难以理解的概念,这些概念其实也不复杂,个人拙见是名词翻译的不准确造成的。
我们来一起看下这些让C++难以理解的反人类翻译.
反人类翻译之一:构造函数
应该改名为:初值函数。构造函数的最主要的作用无非是给成员变量赋初值。当然也可以在里面加一条cout输出。但主要的功能就是赋初值。其实你可以把这个过程想象成一群小朋友进入一个大的教师要准备开始做手工了,要正式开始做手工前,总得告诉这群小朋友每个人一个最初的座位号吧。给初值就是构造函数的主要工作了。
1 class Time 2 { 3 public: 4 Time(int n):num(n){} 5 private: 6 int num; 7 };
析构函数改为清扫函数
这一大群小朋友做完收工后,教室里脏兮兮,乱糟糟的。不能就这么久走了吧。总得把教室打扫干净再走才行。析构函数就是用来做“清理善后” 的工作(例如在建立对象时用new开辟了一片内存空间,delete会自动调用析构函数后释放内存)。
C++当中的析构函数格式如下:
class Time { public: ~Time{} };
另外关于析构函数的执行顺序可以这么理解。这个教室是长方形的,每排只能坐一个人。进来这个教室的时候得让坐最里面的小朋友先进,打扫卫生的时候,得最后进来的小朋友先打扫,然后后面的跟着一个个打扫。
这样看来,所有小朋友进来坐位置的顺序是:E->D->C->B->A。
而打扫卫生的顺序就是:A→B→C→D→E
函数重载和运算符重载也需要改
重载这个词真不知哪位大仙创造出来的,记得当初学C++的时候被这么逆天的词吓了一大跳。感觉又是一块难啃的骨头来了。函数的重载应该改为函数的同名异类。打个比方ABCDE这5个小朋友,真名都叫“小明”,但A小明,擅长打球,以后班上有打球的活就找A小明了。B小明擅长画画,以后班上有画画的事就找B小明了。C小明擅长弹琴,以后班上弹琴的事就找C小明了。运算符重载就该改成运算符的同名异类。同一个名字的运算符完成了几种工作。
函数重载举列:
int Max (int,int);//返回两个整数的最大值; int Max (const vector <int> &);//返回vector容器中的最大值; int Max (const matrix &);//返回matrix引用的最大值;
运算符重载举列:
Box operator+(const Box&); Box operator+(const Box&, const Box&);
友元函数改为好友函数
ABCDE这个5个小朋友,每个人都有自己的好朋友,而且只有好朋友之间才会把自己的好吃的零食分享给对方。打个比方,A的好朋友是C。那么C就可以吃到A的零食。友元函数就是干这个的。比如把A函数声明成自己的好友函数后,这个A函数就可以访问自己的私有数据成员了。
class Box { double width; public: double length; friend voidprintWidth( Box box ); //友元函数// voidsetWidth( double wid ); };
派生类改为儿子类,派生改为‘生’,基类改名为父类
一个儿子类是从一个父类一个继承了财产叫做单继承。一个儿子类从两个或多个父类继承了财产叫做多重继承,因为这个儿子类的老妈可能改嫁了好几次,而他的每个父亲都愿把财产继承给这个儿子。所以他就继承了多个父亲的财产了。虚基类改名为抠门父类,因为他把财产继承给儿子时会和他抠门父亲一起开会商量,保证他们这些抠门父亲给这个儿子的东西不会重复。这个抠门父亲给了一个电视机,另外一个抠门父亲就不会给了,得自己留着用。
class N: {public: Int x; Void display{cout<<”hello world”<<endl} }; Clas A:public N { public : Float y; }
动态关联与静态关联
静态关联改名结婚绑定,双方因为结了婚,没生之前就能确定将来的小孩是谁的了。
动态关联改名产后绑定,双方还没结婚,未婚先子,某一方作风可能存疑,必须生产后看看像谁,验下DNA才知道这个小孩就是谁的。
我们先看下静态关联的定义:函数重载和通过对象名调用的虚函数,在编译时即可确定其调用的虚函数属于哪一个类,其过程称为静态关联,由于是在运行前关联的,所以又叫早期关联。
简单理解为:在编译时就可以确定虚函数的爸爸是谁,这个过程叫做结婚绑定,
我们再看下动态关联的定义:在运行时,基类指针变量指向了某个类对象,然后通过这个基类指针去调用虚函数。由于是在运行时把虚函数与对象“绑定”在一起, 因此,此过程称为动态关联。由于动态关联是在编译后运行阶段进行的,所以又称为滞后关联。
简单理解为:在运行后才知道自己爸爸是谁,这个过程叫产后绑定。
要是改成这样的话,就理解起来比较深刻了,不会过一段时间后就分不清动态和静态哪个是之前确定,哪个是之后确定了。
声明:本文系作者独立观点,不代表CSDN立场。
【END】
- 上一篇:C++面向对象总结:虚指针与虚函数表,干货又来了
- 下一篇:易混淆知识点集合(一)
相关推荐
- VLOOKUP的18种高阶用法大公开!99%的人都不知道的神操作!
-
作为被头条用户催更的Excel课代表,今天带来让HR追着要模板、让老板主动加薪的VLOOKUP终极指南!从基础到高阶一网打尽,文末送36个行业专用模板!一、为什么你的VLOOKUP总报错?血泪大数据...
- Vlooup公式,2种模糊查找匹配,1分钟学会
-
工作中,VLOOKUP公式使用频率是很高的,用来各种查找匹配问题今天我们分享两种模糊查找匹配问题,一种是文本的模糊查找匹配,一种是数字的模糊查找匹配问题1、文本模糊查找匹配使用模拟数据举个例子,原始数...
- 与vlookup功能相似的函数,照样搞定表格数据查询,简单还实用
-
在日常表格数据处理工作,说到数据查询,很多小伙伴首先想到的是Vlookup函数,老师的教程中也多次讲到Vlookup函数的用法和实例。其实在Excel中还有其他的数据查询函数公式或技巧,今天我们先来学...
- 别再折腾VLOOKUP了!DGET逆向查找10秒通关,小白必看
-
今天要掀翻一个“过气网红”——VLOOKUP!你是不是也经历过这些崩溃瞬间:逆向查找要交换列顺序,复制粘贴到手软!多条件查找要嵌套MATCH,公式长到怀疑人生!别忍了!今天教你用DGET函数一键封...
- 职场新人必学!VLOOKUP函数10分钟速成指南
-
正文:"今天来讲解办公人入职期初函数VLOOKUP,这是所有职场人最重要也是最基础的技能。掌握它,90%的数据查找再不用求人!特别献给刚入职场的你——别让Excel成为加班理由。"——...
- 巧用Vlookup函数揪出“第三者”(vlookup第三个参数是什么)
-
在一张Excel表格的重复记录中,让你快速列出每种不同物品第2次或第n次出现的记录,你会怎么做?Vlookup函数就有这个本事。举例来说,产品或者物流表格中往往会记录有同一货物的多笔数据(如下图的今日...
- 分享12个VLOOKUP超经典用法(vlookup通俗易懂)
-
刚毕业那会,面试的时候经常会被问到会不会用Excel?我就理直气壮地回答:“会啊。”毕竟,简历上可是写着熟练。接着面试官扔出一句“那你会VLOOKUP吗?”我还是会一口咬定:“我会。“其实,我都没用过...
- 查找匹配别只知道Vlookup,Sumifs也可以!
-
工作中遇到查找匹配问题的时候,大家第一反应是不是都想到的Vlookup公式呢,有没有小伙伴们给Sumifs一点点机会的呢,有时候Sumifs比Vlookup更好用1、Vlookup公式举个例子,左边是...
- Excel函数讲解:VLOOKUP函数,轻松玩转数据查找
-
常用函数系列教学:VLOOKUP函数讲解(46)。不懂VLOOKUP函数怎么高效查找数据?闲话少叙直接开讲。基本含义:VLOOKUP函数用于在表格按垂直方向(到)上查找返回行数据。如何使用及注意事项?...
- CHOOSEROWS+CHOOSECOLS原来是一个超级查找函数组合!
-
场景一:要在学生名册中,抽查一名学生成绩。公式:=CHOOSEROWS(A1:D5,2)解析:第一参数A1:D5为数据区域,第二参数2表示提取第2行数据。把数据区域改为A2:D5,结合RANDBETW...
- 数据查询不止有vlookup函数,自定义zlookup函数查询操作更高效
-
Excel数据查询,相信大家首先会想到vlookup函数。毋庸置疑vlookup函数在Excel数据查询中作用是非常的强大。但是它也有一些不能实现的数据查询。如上图所示,我们需要根据人员的出现次数,提...
- 「EXCEL进阶」VLOOKUP函数怎么查询一个值返回多个结果
-
前言:VLOOKUP函数一般一次只能返回一个结果,本例介绍通过辅助列的方法使VLOOKUP函数查询一个值,返回这个值对应的多个结果。使用场景举例:根据表格中同一数值,返回对应值的多个结果。比如这张数据...
- WPS查找能手VLOOKUP函数使用方法讲解
-
各位同学好!今天我们来深度剖析WPS最实用的查找工具——VLOOKUP函数。这个函数能帮你在表格中快速定位并提取所需数据,可以帮你快速核对两批数据差异,还可以合并多个表格的关联信息,甚至可以帮你制作动...
- Excel常用10个函数:跨表查找Vlookup,适用于大数据中查找精确值
-
Hello大家好,我是Office米,今天,我们将和大家一起分享交流,常用的10个函数之一:查找引用函数VLOOKUP。在说VLOOKUP函数之前,我们要先了解,平时Excel日常工作中会遇到哪些问题...
- 掌握了这个套路,无论用 Excel vlookup 函数查找第几次结果都很轻松
-
用vlookup查找默认情况下是一对一出结果,如果要一对多查找,就需要用到各种技巧,具体方法我写过非常多了,可以搜索一下历史记录。只要掌握了今天这个套路,无论你想查找第几次重复值,都易如反掌。案例...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- VLOOKUP的18种高阶用法大公开!99%的人都不知道的神操作!
- Vlooup公式,2种模糊查找匹配,1分钟学会
- 与vlookup功能相似的函数,照样搞定表格数据查询,简单还实用
- 别再折腾VLOOKUP了!DGET逆向查找10秒通关,小白必看
- 职场新人必学!VLOOKUP函数10分钟速成指南
- 巧用Vlookup函数揪出“第三者”(vlookup第三个参数是什么)
- 分享12个VLOOKUP超经典用法(vlookup通俗易懂)
- 查找匹配别只知道Vlookup,Sumifs也可以!
- Excel函数讲解:VLOOKUP函数,轻松玩转数据查找
- CHOOSEROWS+CHOOSECOLS原来是一个超级查找函数组合!
- 标签列表
-
- 正版织梦模板 (30)
- 单片机c语言入门基础知识 (32)
- 手机编程游戏 (29)
- 优秀企业网站模板 (34)
- python编程入门自学书籍 (34)
- phpcms安装 (30)
- 自学excel免费视频教程全集 (36)
- php加密系统源码 (29)
- vlookup函数查找 (30)
- 电脑怎么下载java (32)
- vba编程实例速成150例 (30)
- 函数subtotal的用法 (31)
- java教程txt (32)
- java软件开发面试题 (30)
- sql数据库备份与还原方法 (33)
- 后台管理系统网站模板 (30)
- html表单属性有哪些 (31)
- 初中数学三角函数公式 (32)
- python爬虫教程 (30)
- 三角函数值对照表0到360度 (33)
- oracle数据库下载教程 (31)
- index函数什么意思 (34)
- indirect函数的详细用法 (31)
- excel函数round用法 (32)
- vlookup一对多查询并提取 (35)