[请教]请问各位, c++如何更好的提升 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
x9498
V2EX    程序员

[请教]请问各位, c++如何更好的提升

  •  
  •   x9498 2016-01-04 11:38:23 +08:00 4601 次点击
    这是一个创建于 3572 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1 、求推荐一些经典的书关于入门和提升,个人 c++水平是站在门槛前吧
    2 、不是有句话说 c++的水平决定你换工作的底气么
    3 、谢谢各位
    20 条回复    2016-01-05 09:39:44 +08:00
    AtlantisZ
        1
    AtlantisZ  
       2016-01-04 11:45:43 +08:00 via Android
    v2 就可以伸手吗...知乎.谷歌一车回答.经典书籍我个不擅长 c++的都有..
    bladeback
        2
    bladeback  
       2016-01-04 11:46:25 +08:00
    c++ primer (第五版) 吃透算了真正入门了。
    后边《 STL 源码剖析》,《 effective c++》 《 more effective c++》《深入理解对象模型》这些当你在进行了一些实践和对语言有理解之后,觉得能看懂了,再看,收获会很大。《标准 STL 库》这本大部头可以当成字典翻阅。
    harry890829
        3
    harry890829  
       2016-01-04 11:47:33 +08:00 via iPhone
    @AtlantisZ 其实书不是主要的,主要还是方向,高层?底层?等等,纠结了很久
    bobuick
        4
    bobuick  
       2016-01-04 12:00:45 +08:00
    主要就是多写咯,写个几万行自然就深入点了。光看书, effective 那些的话, 木有几万行的经历, 看都没看到痛点
    spww
        5
    spww  
       2016-01-04 12:26:21 +08:00
    写一阵子,看一遍 effective c++,直到完全理解。
    Matrixbirds
        6
    Matrixbirds  
       2016-01-04 12:42:04 +08:00
    参与开源项目。
    hitmanx
        7
    hitmanx  
       2016-01-04 12:59:32+08:00
    仅从学习的角度上来说,c++真是可以很庞大的.所以我现在深深地觉得够用就好了,不过这儿还是可以说说我走过的弯路.

    基本的语法知道后,还得阅读<effective c++>之类去了解它的坑吧.好多人都说这本书是宝书,每一遍都会有新的体会.我很同意 bobuick,spww 说的,这本书没有足够的工程经验,要完全理解是很困难的,这也是为什么很多人要看很多遍的原因.然后可能会觉得书中有些坑很奇怪,想了解得更透彻,于是 google 一番,发现有人推荐<深入理解对象模型>,这本书能完整啃下来也很难.

    STL 起码得会用吧,有人会推荐厚厚的大部头<C++标准程序库>(虽然其实大部分是例子且只看常用的部分的话也还习惯你).然后就会有人说要彻底了解 STL,你得看<STL 源码剖析>.

    以为终于差不多了吧,发现很多项目在用 c++11 了,那得找本系统介绍 c++11 的书看看吧,比如 Scott Meyers 大婶的或者 IBM 出的那本.然后发现 c++11 里又增加了很多新的库,比如 thread library.以上的书还没介绍,那就得再搜点资料看看.然后可能还会碰到例如 std::regex 在 gcc 4.6/4.7 里已经定义,但未完全实现之类的坑.

    boost 用的也很广,也得看看吧?又有很多人不满意停留在会用上,欢快地去读它的源码了.

    以上还不涉及到阅读过程中其它的知识,例如标准库里涉及到的系统调用等\深度探索 c++模型里涉及到的编译相关的知识,stl 里涉及到的算法知识,甚至单独的例如设计模式之类的.

    终于感觉差不多了吧?你去读一些比较复杂的开源库(或者很不幸像我一样发现工作的项目里就有人用了这种技巧,虽然很讨厌,但是能怎么办呢)发现还是读不懂,很可能里面用了一些高级的模板技巧甚至模板元编程,于是你又想去读<C++ templates complete guide>或者<Modern C++ pattern>.这两本能啃完的那也不是一般人了.
    faywong8888
        8
    faywong8888  
       2016-01-04 13:09:51 +08:00   1
    真正拿 c++来干活儿,单纯的去学什么东西没法持久和深入。
    hitmanx
        9
    hitmanx  
       2016-01-04 13:15:09 +08:00   2
    对于我来说,如果能确信将来 10 年甚至更久,我都要做且只会做 c++开发,那么我觉得时间花下去可能还是值得的.或者对一些人来说,主要的工作就是搞 c++编译器相关的开发,那自然也需要知道每一个细节.否则花那么多时间在精通一门语言上面我感觉不划算.熟悉的是语言本身,而不是软件工程.

    且 c++的很多问题之所以那么复杂,并不是必须那么复杂,很多其它语言都有更为精简\灵活的解决方式.c++的复杂度是人为创造出来的,是设计语言时为了做到后向兼容,又要把功能做大做全之类的初衷的妥协.很多 c++的坑,就只是 c++语言本身的坑,换门语言没有任何意义.很多所谓高级的技巧,也只是 c++本身的语法糖,但是复杂度却和学一门新语言也差不多.
    vanxining
        10
    vanxining  
       2016-01-04 13:26:02 +08:00 via Android
    我觉得学得再深入,现实中用不上的话那也很快会忘记的……
    尤其是模板元编程相关的内容,似乎在工作中的代码里面很少见。
    当然,有时间了看过了有个印象还是挺好的。
    vanxining
        11
    vanxining  
       2016-01-04 13:27:54 +08:00 via Android
    因为 C++ 有些特性是为库作者准备的。
    jcSun
        12
    jcSun  
       2016-01-04 13:57:31 +08:00
    同问, c++有什么好的练习的方式吗?
    eliteYang
        13
    eliteYang  
       2016-01-04 15:14:53 +08:00   1
    任何语言的进阶方式都是一样的,多用,多写,多看,多思考
    kotokz
        14
    kotokz  
       2016-01-04 15:25:24 +08:00
    别学 c , 学 c++, 用 c++
    例如,学 string 而不是 char *
    学 vector 而不是[]array
    多用 c++特性,你会发现更有趣,也更简单
    k9982874
        15
    k9982874  
       2016-01-04 15:29:29 +08:00 via iPhone
    多读多写多想 唯手熟尔
    singer
        16
    singer  
       2016-01-04 15:38:27 +08:00
    我们老师说,他朋友公司现在来面试的 C++程序员,啥也不会,开口就说底薪 8K ,不留还不行。 C++太缺了,也不知道是不是真的。
    libook
        17
    libook  
       2016-01-04 16:31:45 +08:00
    我是路过来顶的。

    C++好难。。。
    会 C++的人是真正的技术英雄,虽然 Linus 老是喷他们(不过没有什么是他不喷的 233 )~
    传说 C++的发明者说到现在也没有人能够完全理解他发明 C++的思想。
    好好学吧,加了个油~
    GentleSadness
        18
    GentleSadness  
       2016-01-04 22:20:52 +08:00
    effective c++,关于这书,我一直想问,在 C11 年代下,这书还有效吗
    snakeeye
        19
    snakeeye  
       2016-01-05 08:43:37 +08:00 via iPhone
    @GentleSadness effective modern c++
    Ethaniz
        20
    Ethaniz  
       2016-01-05 09:39:44 +08:00
    @GentleSadness 同样有效,比如智能指针相关的章节,书中需要用到 boost , c11 直接用标准库就行了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3159 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 10:57 PVG 18:57 LAX 03:57 JFK 06:57
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86