C++ 真是一门很复杂的编程语言

Standard

用C++进行编程的时候总会碰到各种瓶颈,而每每仔细研究之后就会发现C++要比原想的那样复杂得多——它太庞大繁杂了:作为C的超集,又集成了各种编程范式,添加了诸如template等的诸多概念,C++已经算是不简单了,这还只是语法本身,更别提大工程之间各种代码之间的交互协调了。

学习C++

但是作为我的首席编程语言,我必须精通它才行,而现在才只是初窥门径。怎样才能快速提高呢?刚才在查资料的时候在stackoverflow上面看到了一段话提醒了我:

The only reasonable way to learn C++ is by reading... no matter how smart you are there is no way you can guess what the committee decided (actually being smart is sometimes even a problem because the correct answer is illogical and a consequence of historical heritage).

作为一个很少阅读大神代码的人可谓是吃尽了苦头——经常会碰到一些匪夷所思的问题,绞尽脑汁去思考,尝试,很久才发现这些问题都并不复杂,只是思维方式没有对而已。到底是因为我并没有专门的腾出来时间来读C++的书…(可惜真的有更重要的事要做)

我与C++

从初三的暑假算起到现在已经接触和“使用”C++将近4年半了,这期间对它的理解和掌握大概可以分三个阶段:

  • 刚开始的一年里几乎是完全以C的用法来使用C++的,没有任何面向对象的概念。
  • 再接着直到高三暑假接触了一些面向对象程序设计、C++核心的概念:类的一般用法,标准模板库的简单使用,基本上这段时间写的程序主要就是算法竞赛式的单文件程序
  • 最后就是从大学开始到现在这段时光,我明白了子类对基类的继承,类的多态(虚函数的使用)特性,以及接触了一些大型C++程序的代码,比如折腾了一段时间Havok物理引擎,写了一些上千行的东西,比如自己写的光线追踪器(ray tracer),以及现在正在写的计算几何库。

可以说现在我的C++编程水平仅仅是刚入门,因为高中的时光我的注意力主要是在算法和数据结构上面,对于编程语言本身并没有太在意(除了一些奇奇怪怪的错误让我不得不在意),而大一也并没有去学习很多进阶的内容(比如标准模板库是如何实现的,元编程(metarpogramming)等)

最后推荐一个书单,有各种讲解C++的书,总有一款适合你:D.

Written with StackEdit.