找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 22692|回复: 0

为什么C++难学?从开始就有原因的,不过你越深入越会觉得它强大 ...

[复制链接]

该用户从未签到

发表于 2021-5-3 21:00:08 | 显示全部楼层 |阅读模式

您需要 登录 才可以下载或查看,没有账号?立即注册

×
C ++ 是真实的东西,是一种面向认真的程序员的语言,他们知道自己在做什么。很多人觉得自己在编写代码方面“很擅长”,并且对解决任何编程工作都充满自信甚至自负。 C ++是使他们停下来思考的唯一语言,并质疑自己是否有资格成为一名真正的计算机科学家,而不仅仅是拥有该学科学位的人。

                               
登录/注册后可看大图

据说贝尔实验室语言的创始人Bjarne Stroustrup试图发明一种计算机编程语言,这种语言既神秘又复杂,以至于除他以外没有人可以使用它。如果他真的在想,他就搞砸了,因为他不指望其他计算机科学家的执着和深厚的理智。那些硬着头皮并学习了如何使用C ++进行有效编程的人发现了C ++的强大功能和优雅之处。

                               
登录/注册后可看大图

他们很快意识到这是一种主力语言,可以用来编写任何东西,这是编写消费者软件可用的最佳语言。在那些日子里,我们受内存和存储的束缚,大多数软件都分发在硬媒体上。代码必须严格而坚如磐石,才能证明正在开发的合理性,更不用说分发到整个世界了。C很棒,它彻底改变了专用设备的编程,但是需要进行扩展以“为世界建模”。为此,Stroustrup选择了Simula和Ada之类的语言。他已经迷上了面向对象编程的理论,并想在贝尔实验室从事的软件开发项目中使用这种方法。因此,他采用了C,这是他们拥有的高效语言,并将其包装在新的结构中以支持面向对象的编程。

这样做导致C ++变得“困难”。具有属性和方法的对象的想法对于大多数程序员来说太抽象了,以至于无法完全掌握。但是,一旦掌握了完成的方式,就很清楚为什么今天所有的“重要”消费者应用程序都是使用C ++编写的。您可以轻松地完成其他任何流行语言都无法做到的事情。
最后的品质和使C ++成为困难的语言一样,也是其不断复杂化的构造所造成的。但是,语法的刚性也是一种福气,因为它不支持懒惰的思维。您不能只是将void *投射为所需的东西,并且希望一切都会成功。您必须弄清楚自己在做什么。
当然,让大多数人受益最多的是难以理解和学习使用的东西。第一次看到模板时,我差点吓坏了。 “你是什么意思将东西放在'<'和'>'之间?”一旦冷静下来,我就明白了:模板促进了可扩展性,并使简化代码成为可能,从而避免了重复的复杂性。好的。学习C ++功能通常就是这样。您会在教科书中看到一些没有意义的代码或示例,学习它们,然后将其使用。使用语言功能完成该过程后,您就会知道他们为什么拥有它,这突然变得很有意义。一段时间后,您想知道没有该功能的情况如何。您甚至可能想知道没有该功能的较不复杂的语言如何完成所有工作。

                               
登录/注册后可看大图

每个复杂的构造都有其原因。您是否不喜欢引用,因为它们似乎不必要地复制了指针?这是有原因的,虽然微妙,但却是真实的。还有一个笑话是,当Stroustrup的同事们嘲笑他的一门难以理解的语言时,他门说这很琐碎,他说:“哦,是吗?”然后,他回到研究室,直到添加参考和模板后才出现。这是合理的,但并非不可能。开个玩笑。
回复

使用道具 举报

网站地图|页面地图|文字地图|Archiver|手机版|小黑屋|找资源 |网站地图

GMT+8, 2024-12-22 01:03

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表