观点:没有吃够苦头的C++程序员称不上了解C++

近日,国外技术博客lbrady.com 发表了一篇非常有意思的博文。文章认为C++语言庞大而复杂,只有那些在c++开发之旅上吃过许多苦头的程序员才能真正的了解C++。显然作者受到一些刺激,他的博文名称为“永远不要相信那些自称懂C++的程序员(Never trust a programmer who says he knows C++)”。原文如下:

经过一段长时间的面试工作后,我意识到一个非常重要的关于C++的问题,那就是C++是个“严重两极化"的程序语言。我的意思是:C++是唯一一个完全不同的两类使用者都自称精通,却对它的理解大相径庭的语言。让我用下面这个图示说明。



图注:(自左向右,自上而下,所标文字为各阶段程序员对C++的认知。分别是:带类的C语言、那些模板报错信息真令人发狂、引用类型太不可捉摸了、到底啥是虚析构函数?这些异常说明符比Java的差、静态对象初始化段错误、我们需要一些规则。)

一般的程序员(特别有C语言基础的)都可以很快上手C++开发,并且感到挺熟练。如果是这样的程序员说他很懂C++,那他肯定在撒谎。因为当他继续在C++开发之路走下去时,他就会经历上图下曲线上标注的所有挫折,而后他就会认识到C++是一个多么复杂的语言。在面试中,这带来了一个优点(至少对面试官而言):很容易辨别哪些是经历过这些挫折,哪些没有。只要你提及C++真是一个变态的复杂语言时,挫折经历后的同学就会向你抱怨,他们在使用C++时遇到的127个小问题。而没有经历过的同学就会说:“安啦,那不就是带有类的C语言嘛?”(杨东杰编译)

你对C++语言的理解到了哪一步呢?

原文链接:Never trust a programmer who says he knows C++

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22893636/viewspace-630944/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22893636/viewspace-630944/

游戏开发中的CV:实时动作捕捉与虚拟交互 游戏开发中的CV:实时动作捕捉与虚拟交互​ ,人工智能,计算机视觉,大模型,AI,在当今游戏产业中,玩家对游戏体验的要求日益提高,追求更加真实、沉浸的交互感受。计算机视觉(Computer Vision,CV)技术的飞速发展,为游戏开发带来了革命性的突破,其中实时动作捕捉与虚拟交互技术更是成为提升游戏品质的核心驱动力。 阅读详情

相关推荐

Agent 长期记忆三代演进:从 RAG 到 Memory Graph,mem0 / Zep / LangMem / Letta 深度横评

文章摘要 2026年,Agent长期记忆技术迎来关键突破,OpenAI、Anthropic等厂商通过扩大上下文窗口和推出记忆工具,推动长期记忆从工程补丁发展为独立技术层。本文通过分析三代记忆架构演进(RAG→结构化Fact→MemoryGraph)和四大方案(mem0/Zep/LangMem/Letta)的8维度横评,揭示以下核心观点: 长上下文≠长期记忆:128K上下文如同RAM,仍需硬盘式记忆层筛选和结构化存储,避免“Context Rot”导致的准确率下降。 三代架构演进: Gen1(RAG):向量检

LDZKKJ的博客 1399

【C++核心】一文理解C++面向对象(超级详细!)

C++面向对象的三大特性为:封装、继承、多态C++认为万事万物都皆为对象,对象上有其属性和行为例如:​ 人可以作为对象,属性有姓名、年龄、身高、体重…,行为有走、跑、跳、吃饭、唱歌…​ 车也可以作为对象,属性有轮胎、方向盘、车灯…,行为有载人、放音乐、放空调…​ 具有相同性质的对象,我们可以抽象称为类,人属于人类,车属于车类封装是C++面向对象三大特性之一,封装的意义:封装意义一:​ 在设计类的时候,属性和行为写在一起,表现事物语法: 示例1: 设计一个圆类,求圆的周长示例代码: 示例2: 设计一个学生类

数据知道的博客 5万+

DSP28335 ADC模块实战:从寄存器配置到精准数据采集(附代码详解)

本文详细解析DSP28335的ADC模块配置与数据采集实战,涵盖寄存器设置、采样窗口优化、中断处理及代码实现。重点解决ADC精度问题,如采样窗口不足导致数据偏差,提供完整代码示例和调试技巧,助力工程师实现精准数据采集。

kkk56的博客 862

理解C++

c++作为面向对象设计最丰富的编程语言,具有类class、私有/共有/保护、引用、重载、继承、友元、虚函数、纯虚函数、运算符重载、模板等特性。运用这些特性来实现面向对象的封装、继承、多态。很多程序猿一头扎进去,有人用的炉火纯青,有人用的晕头转向,那么有没有想过,这些特性在编译器里是怎么实现的?是如何变成汇编在机器上执行的?如果由你来实现C++的编译器,你会如何实现这些特性?以下为个...

好记性不如写博客! 789

Vue2 - 最新实现接入使用天地图及卫星视图切换功能,在国家天地图上自由切换地图显示类型(卫星视图/地形视图/卫星混合/地形混合/普通视图)vue天地图切换视图显示改成卫星风格,切换地图图层完整代码

vue2,nuxt2,天地图,视图,卫星,地图类型切换,vue天地图,改成卫星视角,在线地图切换,来回切换卫星图,天地图如何实现来回切换卫星图,地形图,卫星视图,vue中使用天地图自定义样式切换地图图层,切换报错,加载出错,卫星图太卡,地图图层更换,vue安装集成天地图详细示例源码,切换地图的样式,在天地图中如何将地图的类型随意更换,提供多种视图模式用户自由点击更换,VUE引入天地图卫星版,详细教程示例源码代码,天地图切换卫星用什么api,卫星视角API方法,vue2卫星天地图,能改地图的显示方式,图层类型

🏆 前端领域优质创作者 4140

读懂 ABAP CDS 注解的直接、继承与派生

本文系统梳理了ABAP CDS注解的评估逻辑,重点解析直接注解(Direct)、继承注解(Inherited)和派生注解(Derived)的差异及其在CL_DD_DDL_ANNOTATION_SERVICE中的处理方式。通过视图注解@Metadata.ignorePropagatedAnnotations可调控注解传播行为,避免下游语义影响上层视图。文章还提供了基于标准表的完整示例(包含底层视图、消费视图和ABAP报告程序),帮助开发者在实际系统中验证三层注解的叠加效果与阻断机制。关键点包括:派生注解的数据

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

C++介绍与入门学习

C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。 C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。 免费教程链接:C++ 入门教程(开发文档) 语言特点: 支持数据封装和数据隐藏 在C++中,类是支持数据封装的工具,对象则是数据封装

C语言C++学习俱乐部:765860056 477

黑猫带你学Nand第11篇:万字长文带你了解NandFlash的数据保持原理及特性(Data Retention)

TATTAT:Trap-assistedtunneling,陷阱辅助隧穿,也有叫法称为电荷陷阱现象。这是一种物理现象,它发生在非挥发性存储器,如NAND闪存。在这种效应中,存储在闪存单元浮动栅极上的电荷(电子)由于隧道氧化物中捕获的电荷形成的电场影响,导致电荷通过隧道效应从一个能级隧穿到另一个能级,从而造成电荷泄漏。这种电荷泄漏是导致闪存数据保持问题的主要原因之一,因为它可以改变存储在闪存单元中的电荷量,进而改变其阈值电压水平,最终可能导致数据错误。在NANDFlash中,电荷被存储在浮置栅极上。

黑猫奥利奥的博客 1095

Qt专家、订阅号“程序视界”创建者安晓辉:引导你逐步深入学习C++

作者简介:安晓辉,程序员、技术管理者、作家、职业规划师、在行行家、分答答主,著有《Qt on Android 核心编程》、《Qt Quick核心编程》和《你好哇,程序员》,创建订阅号“程序视界”。 C++是一门古老而复杂的语言,绝不是一门可以速成的语言,学习它需要有意识的刻意练习和长时间的持续不断的磨练。而大多数人不太能耐得住寂寞,喜欢速成,所以像《21天学通C++》这种书就比较受欢迎,卖得...

小秋博客 1025

基于点云数据的统计滤波算法改进

随着三维视觉和点云处理技术的发展,点云数据在机器人、自动驾驶、增强现实等领域得到了广泛应用。而点云数据中常常包含着各种噪声和异常点,这些噪声和异常点会影响后续的数据处理和分析任务。因此,对点云数据进行滤波处理是必不可少的一步。在点云滤波算法中,统计滤波(Statistical Filtering)是一种常见且有效的方法。它通过对点云数据进行统计分析,将噪声和异常点剔除或修复,从而得到更为准确和可靠的点云数据。本文将介绍一种改进的统计滤波算法,并提供相应的源代码实现。

QfcaLinux的博客 290

Python控制程控电源(USB)

随着智能电动汽车行业的持续发展,汽车电子或嵌入式设备在软硬件的测试中,都会使用程控电源供电,特别是自动化测试、压力测试场景必定使用到程控电源控制,控制电源上下电,监听电源电流、电压等,以下就以常见的艾德克斯程控电源为例,分享如何通过USB连接方式Python语言来控制程控电源。

测试领域技术分享 2864

关于学习C++编程的50个观点

8. 如果不是天才的话,想学编程就不要想玩游戏——你以为你做到了,其实你的c++水平并没有和你通关的能力一起变高——其实可以时刻记住:学c++是为了编游戏的;自己程序中的class和自己的class设计水平是在不断的编程实践中完善和发展的;40. 既然决定了学c++,就请坚持学下去,因为学习程序设计语言的目的是掌握程序设计技术,而程序设计技术是跨语言的;28. c++绝不是所谓的c的“扩充”——如果c++一开始就起名叫z语言,你一定不会把c和z语言联系得那么紧密;

程序猿老樊的博客 1185

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

C++代码安全争议专家观点:安全是系统工程,没有银弹

采访嘉宾 | 吴咏炜 责编 | 梦依丹出品 | 优快云(ID:优快云news)近日,因为内存安全问题,老牌编程语言 C++ 又被推上风口浪尖。一些人认为 C++ 的内存管理复杂,容易出现漏洞,而另一些人则认为这正是 C++ 的魅力所在,它赋予了程序员更多的控制权。此时,有人建议转向 Rust,声称它在内存安全方面有着出色的表现。然而在 AI 大模型的加持之下,未来的程序员还有必要学...

程序人生的博客 1万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

程序员是吃青春饭的吗?来来来,我告诉你答案!

最近几天,天气渐暖了,但互联网大厂的裁员寒风依然冰彻骨髓!被刮到的对象自然不乏程序员,其中那些所谓拥有多年开发经验的“高龄”程序员成为了重灾区!于是乎那些“程序员是吃青春饭的”、"高龄程序员的出路在哪里"等等论调再次回归程序员的讨论圈。 熟悉我的朋友应该都知道,每当我听到类似这样的言论时,我真想喷你二脸(一脸不够)!因为我十分且特别讨厌说程序员是吃青春饭的!像这些消极言论只不过是为你将来的转行,以...

张培跃的个人博客 3179

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

学习C++和编程的50个观点

学习C++和编程的50个观点(1)y Kingofark [注]:是《Kingofarks 50 Points of View About Learning C++ And Programming(kingofark关于学习C++和编程的50个观点)》的简称;是《Kingofarks 35 More Points of View About Learning C++ And Program

buffoon1的专栏 1385

对 C++ 历史的个人观点

先把 PPT 放出来,文章以后有空再写吧。

陈硕的Blog 2万+

C与C++语言之争:网友观点争论精彩语录之一

 【优快云 报道】昨天由优快云发布的Linux之父发表了对C++的不满之后,很多的软技术专家们就这一问题提出了自己的观点,随后诸多位网友也积极参与了讨论,现在展示给大家的就是他们的精彩语录。支持观点:1,网友roy_hu C++野心太大,希望包罗万有,以致语义实在是太复杂了。而这个复杂性在我看来是不必要的,因为它只增加了程序员的负担,却没有带来新的思维方式。设计语言做减

.NET爱好者--小桥流水人家 949

Kingofark关于学习C++和编程的50个观点2003修订版

Kingofarks50 Points of View About Learning C++ And ProgrammingK ][ N G of A R K™关于学习C++和编程的50个观点2003修订版Revision 2.0by K ][ N G of A R K ™前 言Long long time ago, on a to

方舟 K ][ N G of A R K 6410

C++泛型类的.h与.cpp

原文 http://www.codeproject.com/Articles/48575/How-to-define-a-template-class-in-a-h-file-and-imp(不正确) http://blog.ethanlim.net/2014/07/separate-c-template-headers-h-and.html (正解) Solution

天下任我行 1474

程序员是吃青春饭么?

        应该很多人都有这种想法的,程序员是吃青春饭的,甚至很多程序员本身都有这种想法。我个人认为程序员是一个事业可以长久的干下去。       首先,分析有这种想法的原因: 1.程序员天天加班,年轻的时候还有精力年纪大了就力所不能及了。 2.在国内基本上程序员都是很年轻的,年纪大了一般都转管理,更加肯定了这种想法。 3.道听途说,三人成虎 总之就是程序员需要加班,而且加班很厉害。年...

云梦九章~ 3万+

“一个C++ 程序员的生产力,大概相当于20个C程序员,200个java程序员”?

声明:问题来源于悟空问答关于”一个C++ 程序员的生产力,大概相当于20个C程序员,200个java程序员”,对于这句话你怎么看?内容回答来源于EmacserVimer、大学生编程指南等资深码农联合回答,点击阅读全文前去围观。 本周话题:”一个C++ 程序员的生产力,大概相当于20个C程序员,200个java程序员,对于这句话你怎么看?” 欢迎大家留言说说自己的想法。 这其实是一种谬论...

公众号-老炮说Java 5766

学习C++的五十个观点

[转贴]学习C++的五十个观点 (上) 条款1. 把C++当成一门新的语言学习(和C没啥关系!真的。); 这一条源于我在《程序员》杂志2001年第4期上看到的《将标准C++视为一个新语言》一文,作者是C++的设计者Bjarne Strou- strup。这篇文章还可以在Bjarne Stroustrup的个人网页上找到。这篇及时到来的文章很好的调整了我的思维,让我有幸在初学C++时就得

zjnny的专栏 2464

程序员等于吃青春饭吗?

2014-9-1 13:56| 发布者: 传智特刊| 查看: 224| 评论: 0 摘要: 在中国,人们对软件行业从业者有这么一个说法,即:程序员=吃青春饭的,这使得程序员的年龄问题显得相当敏感。很多计算机相关专业的毕业生在择业时,不知道是受到什么因素的影响,对于程序员这个职业,普遍存在一个 ... 在中国,人们对软件行业从业者有

奥瑞的专栏 1760

在linux下,使用AMQP-CPP开发rabbitmq c++

首先介绍一下背景以及我为什么选择AMQP来开发 1. rabbitmq作为我们的日志中转 2. 生产者只能为单进程(项目要求),且进程还需要处理其他事情,所以发送者不能够阻塞进程 3. 必须实现心跳功能(我们是与代理服务器相连,如果没有心跳且没传输数据时会被代理关闭连接,除非设置代理不关闭连接,比如nginx在十分钟没有数据的情况下就会端开连接,可以手动设置nginx的保活时间时间长一点来解决,但是治标不治本,所以必须最好实现心跳) 由于上述三点,我比较了SimpleAmqpClient 与AMQP

weixin_39881935的博客 1997
上一篇: hibernate 二级缓存 个人总结
下一篇: 红帽第四财季营收增18%:利润达2340万美元
cppioq7518
博客等级 码龄10年 1粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值