C++怎么学

本文分享了一条从初学到精通的C++学习路径,强调了理论与实践相结合的重要性,并推荐了多本经典著作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 首先声明:本人对之也只能说略之一二(C++太博大了:))  
      孟岩先生曾经提过"C++需要自由的心",我要说"C++需要自由的心和手",我敢肯定我想的自由和孟岩先生的自由是不同的.  
  因为我的自由就个人诠释是   :"用自己的思路来自由的写验证性的usecase"  
      就个人的学习心得而言   :  
    
  1.在你学习C++的过程中,你首先需要扎实的实践一本C++基础教程,这个教程不在深而在全.使你能够全览之.最好结合基本数据结构来练习.不要整天Hello   World~~Hello   MM的.  
    
  2.再下来你需要《(More)Effective   C++》,它使你可以对C++也多了份思考,也了解到一些技巧和误区,不过,你需要同步实践,不然可能一时你并不能真正掌握这些技巧、避开误区.  
    
  3.提高,你需要:(下面的书可能已经讲烂了:))  
    
      《Design   Pattern》   :个人感觉,设计模式虽说是一种思维方式,具体实现上,只是  
                                                  对OOP语言的发掘和巧妙组合而已.而且这里组合是主要的,  
                                                  特性是有限的,这本书中有几个模式没用虚特性的?    
        C++   Standard   document.   在你用它来做专项研究的时候,就会体会到什么才叫真正的  
                                                                                      全而深   (自然指在语法和语义的阐述上).    
      《STL源码剖析》   :没有深厚的功底,想来个闭门造车独挑STL源码是不可能的.  
                                                                      不过,这本说也重在关键技术的讲解和引导罢了~~  
                                                                        这里关于GP和STL的名著不少,本人没看过。不做品评。  
      《   Inside   The   C++   Object   Model》:最具价值的一本书,没了它,C++永远是个迷,哪怕  
                                                                          你浸淫之N载~~  
      《Moden   In   C++   Design》   :这里的很多思路是你自己的思维很难接触到的~~:)  
                                                          我不得不佩服Andrei   Alexandrescu.  
    
      市面上其它的C++书籍可牛车载,我感觉除了《The   Design   And   Evolution   Of   C++》是异品,值得一读.其它的不建议花太多的时间,哪怕是Bjarne   Stroustrup、Stanley   B.Lippman等的作品.自然,你有时间读更好,反正我现在有点后悔,当初只顾多,不顾深读,反复读.经典的书不在本数多,在于每本读的遍数多.一经验之谈,BBS上经常有人,在介绍COM技术书籍时,想也不想的指出,入门级<<Inside   The   COM>>.是这样的吗?我想,正如Dale   Rogerson所说,将这本书完全看懂,你就是COM专家了~~书中,作者很多话可能你没有注意到,因为你还不懂之,对之没感觉,一遍翻下来,感觉   哦~~简单~全看了   :)   这些书,跟国内的很多书籍最大的不同就是  
  国内书籍的作者写的出,可能自己还不懂:)Copy什么资料上的:)??  
    
  4.浸淫一门语言本身的语法语义再久,你不一定能够深入它的精妙之处.  
      你需要学习应用这门语言的实作品(技术),你可以研究一些FrameWork或是一些具体的技术   如CORBA、COM等.就个人而已,有心接触C++十个月左右,对于Virtual的认识有过几次较大的的改变.在《   Inside   The   C++   Object   Model》中算第一次,在《COM本质论》中关于COM对二进制兼容布局需求而用虚机制来解决是第二次,到目前为止,使我对virtual流下最深刻印象的是在Automation技术中组件由于环境是否有能力分析virtual结构而导致是否需要分发接口的问题.如果,整天抱着《C++语法语义深入》这样的书,我不知你何时才能真正了解C++很多的特性.  
      即使你可以对别人说上一大套,这行啊~那不行啊~~云云~~:)    
    
  在这整个的过程中,我喜欢这样对学弟说,你需要经常将C++的各种特性在脑中反复混合酝踉,这也是我强调学基础时,要求教材知识点全的原因.经常的,为了研究某些特性而自由的写、修改、增加UseCase,是我自认为很好的一个习惯.整天记他人的经验之言,不知几个月后还记得几层:)?  
    
        也许上面的叙述是概括了些:)?  
    
        总之,我认为学习C++,需要多思考(譬如你想想为什么模板类继承不支持virtual、模板  
                                                                        类继承,基类实例和继承类实例产生的关系是什么样的)、  
                                              多写usecase、  
                                              多将一堆特性混合酝晾(譬如模板类  
                                                                      成员签名、多种嵌套模板类成员签名、嵌套类与包裹类生命期  
                                                                    控制等等)  
                                                
                                              要尽早选择应用方向(这点很重要,附加个人观点:大多数人认为理论很  
                                                                                    难,可是我要说:应用一样是有难度的:)).  
    
                                              将00工程学中的理论适时的来对照自己的行为.  
              
    
  后话:  
          上面提到,就应用而已,比较语言的是没有什么意义的.然而我想说的是,不敢想象  
  没有经过C++锤炼的人,可以深入的研究C#(事实上,我一直也不认为C#比C++好学,只是他们的深入点是不同的,冒昧说一句,C++中很多难度是人为制造出来的),就目前的情况来说,还有就是由于C++历史、  
  社团、资源等因素.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值