当前位置:首页 > 每日看点

为什么拥有C语言基础的人,依然学不会C++?

卡卷网1年前 (2024-12-12)每日看点289

当你认为 C++ 是面向对象的语言的时候,你就永远学不会 C++。

恰恰大部分学了 C 的人,都会认为 C++ 不过是 C 上加了“对象”。既然是 C with class, 他自然就很自信的认为自己很快就能学会C++。

C++ 不过尔尔。

----
但是,当他有一天,需要使用C++的时候,很快他就会感到巨大的挫败感。
因为C++除了 C with Class ,剩下的东西他没一个能懂的。

C++ 真的是太复杂啦!

这就是大部分人 C++ 从入门到放弃的原因。

----

如果放弃自以为是的面向对象的成见,好好的学习 C++,就会发现, C++其实是个面向“概念”编程的语言。

C++ 的一切特性,都是为了 0 开销抽象 “概念”。

为何会有模板?
因为,同一个概念,用同一份代码。而不管这个概念背后的真实数据类型。比如 std::sort, 他就是排序。只要能比较大小的,就能排序。你管他是 int 还是 char 还是float, 甚至连 string 都能排序。只要能满足 “可比较大小” 这个概念的,都要能排序。

既然排序,就得有容器。排序排序,得有个容器,把东西放里面排排放,那才有顺序的概念。
于是就有了 “容器” 的概念。为了操作容器,就要对容器进行更高程度的抽象,于是就有了 “迭代器”的概念。迭代器,就是用来访问容器里存储的对象的。是容器的抓手。

有了容器,就有了“对象”生命期的管理需求。对象放入容器,拿出容器,它到底何去何从。
于是就有了右值引用和左值引用的概念,这样就能设计出 拷贝构造和移动构造。
有了拷贝和移动的概念,才能设计出性能更好的容器。对象是被移动到容器里的,而不是拷贝进去的。这就大大降低了使用容器存储“大对象”的开销。

这些都有了,又发现,如果用错了对象,对象和模板希望的“概念”不匹配,编译出错就会非常疯狂。
于是就有了 "concept" 关键字。加上了模板参数约束功能。

很多时候,一个通用概念下,总会有一些“特例”。为这些特例按排单独的代码,不共享通用的模板代码,就可以更好的“优化”性能。于是就有了 “模板特化” 功能。

模板特化,是为了更好的实现概念。比如 容器一般会对 普通的“对象” 和 简单的内置类型对象,使用不同的代码。因为内置类型没有“构造函数”。于是,容器的模板,就会对简单类型进行特化。这样的特化代码,对无构造函数,无析构函数的对象,进行针对性的优化。

但是,无构造函数的,难道只是内置类型吗? 用户写的对象,也可以无构造函数。于是,这种模板特化,就不是为具体类型进行特化,而是对某个细分的“概念”进行 一半的特化。这种一半的特化,就叫 模板偏特化。 也是为了更好的实现 面向概念编程。

所以你看,一切 学不会的 C++ 特性,都是因为他还在使用“面向对象”这种思维方式。

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2024/12/4058.html

分享给朋友:

相关文章

有哪些好用不火的软件?

有哪些好用不火的软件?

20个无敌冷门的小众APP,好用到 内存爆了都不想卸载,个个是宝藏! 特别是第4、13、19个,大多数人都没玩过~ 1、【毒汤日历 】 – 你的每日快乐源泉 [iPhone/Android]好用指数:⭐⭐⭐⭐⭐ 下载地址:各大应用商店…

拼多多百亿补贴买手机电脑等数码产品靠谱吗?

大家很多人都在问pdd百亿补贴购机靠谱吗? 首先声明一下,我不是pdd的人,我只是一个普普通通混迹从事pc行业的数码玩家,我只是在评论区看到很多人都在无脑推百亿补贴,特地发一条怗子来说明一下这个东西。此怡不存在偏向引导,此站仅站在我个人角度…

如何评价小米14pro顶配可以选配卫星通话,小米15全系都无法选配?

如何评价小米14pro顶配可以选配卫星通话,小米15全系都无法选配?

雷总不是说了吗,我可以不用,但你不能没有。市面上OPPO Find X8 Pro和vivo X200 Pro的卫星通信版分别加价300,而荣耀Magic7和Magic7 Pro有卫星通信版且不加价,荣耀更显诚意。 我觉得有是更好的,虽然使用…

为什么小公司留不住人?

为什么小公司留不住人?

我估计,整个知乎,可能没有比我公司再小得了,。。 正对面就是我唯一的一个员工的工位。 为啥留不住人。因为那些留不住人的老板,太拿自己当回事。 大公司靠制度。小公司靠人情。 我这儿的业务,因为全都是线上,所以员工来不来坐班都不重要。 天太…

被网络诈骗了,钱还能追得回来吗?

我刷单被骗,当时不知道怎么办在百度上找个律师说他们能追回,还说不用报警,我傻的就信了,支付了费用签合同,我还是不信他们,报警了,报警没几天警官就连系我追回一笔钱让我注意银行卡到账通知,又过几天我第二笔钱到账了,律师说是他们追回的,要我支付后…

为什么原来说 7 nm 是半导体工艺的极限,但现在又被突破了?

10年前我们觉得65nm工艺是极限,因为到了65nm节点二氧化硅绝缘层漏电已经不可容忍。所以工业界搞出了HKMG,用high-k介质取代了二氧化硅,传统的多晶硅-二氧化硅-单晶硅结构变成了金属-highK-单晶硅结构。 5年前我们觉得22n…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。