如何从 c++菜鸟转型 c++高手 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
csfreshman
V2EX    C++

如何从 c++菜鸟转型 c++高手

  •  
  •   csfreshman 2024-03-02 23:41:38 +08:00 4469 次点击
    这是一个创建于 651 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一晃工作几年了,从第一次加入 V2EX 起的名字 csfreshman 到现在 c++开发了几年,大都是 ctrl cv ,遇到让自己挑大梁,设计 重构某些大项目时就无从下手,真的太难了。

    再次求问,有没有那么些免费或付费教程,教你如何现某些类,如何设计某些类,类与类之间怎么样设计合理,方便扩展等?

    第 1 条附言    2024-03-09 16:29:05 +08:00
    最近在看这几本书,收货挺大:
    1.提高 c++新能的编程技术 efficient c++ performance programming techniques
    中英文 pdf 对照着看,挺好(买不到实体书了)

    2.深度探索 C++对象模型
    好书,推荐
    24 条回复    2024-05-11 13:17:42 +08:00
    LeegoYih
        1
    LeegoYih  
       2024-03-02 23:53:33 +08:00
    学 Rust 吧,WH 现在看到 c/c++都急了
    csfreshman
        2
    csfreshman  
    OP
       2024-03-02 23:55:45 +08:00
    @LeegoYih 哈哈,贪多嚼不烂呀,我现在 c++主学,偶尔看下 go,先搞深一点 c++再说
    proxytoworld
        3
    proxytoworld  
       2024-03-03 00:00:30 +08:00
    @LeegoYih 哈哈哈,虽然我也挺喜欢 rust 的,但不得不承认,某些人就想用 rust 重写一切。
    lesismal
        4
    lesismal  
       2024-03-03 00:06:00 +08:00
    有学 cpp 这功夫,早把 rust 玩 6 了,如果懒得学 rust ,go 可是太容易上手了。

    https://m.thepaper.cn/newsDetail_forward_26518590

    直接贴一部分吧:

    其实,这并不是美国官方机构第一次呼吁放弃使用 C 和 C++ 了。
    去年 12 月,美国网络安全和基础设施局( CISA )联合其他机构颁发了一份《内存安全路线图指南》, 其中就指出了 C 和 C++ 是内存不安全的编程语言,并呼吁软件开发商采用 Rust 、Java 等其他内存安全的编程语言。
    2022 年 11 月,美国国家安全局 (NSA) 发布了一份网络安全信息表,详细介绍了它认为内存安全的编程语言
    Rust
    Go
    C#
    Java
    Swift
    Javascript
    Ruby
    Python
    Delphi/Object Pascal
    Ada
    mightybruce
        5
    mightybruce  
       2024-03-03 00:56:38 +08:00
    "教你如何实现某些类,如何设计某些类,类与类之间怎么样设计合理" 设计模式和 UML 吗? 这东西不是 C++ 内容, 相当一部分靠经验积累以及看优秀项目源码, 否则都是过度设计的例子。
    BeiChuanAlex
        6
    BeiChuanAlex  
       2024-03-03 01:08:39 +08:00
    学汇编,把底层补一补
    leimao
        7
    leimao  
       2024-03-03 08:02:46 +08:00 via iPhone
    C++不 memory safe 是软件架构师和开发者自己的问题
    Rust 和 Python 也有可以写成不 memory safe 的例子
    Nosub
        8
    Nosub  
       2024-03-03 08:40:51 +08:00 via iPhone   1
    op 都开发几年 c++,这个帖子是不会有答案的,建议去知乎看。
    hello2090
        9
    hello2090  
       2024-03-03 09:13:26 +08:00 via iPhone
    不懂啥叫大部分都是 copy paste,从哪 copy 来的?
    airchaoz
        10
    airchaoz  
       2024-03-03 10:33:33 +08:00
    和我一样,忙于增删改查缺少高级实践和正向反馈。看源码和别人优秀的设计可能会有帮助
    sjkdsfkkfd
        11
    sjkdsfkkfd  
       2024-03-03 10:49:00 +08:00
    看 cppcon
    xyzos
        12
    xyzos  
       2024-03-03 11:03:44 +08:00
    真的可以试着学一下 rust ,我就是通过学 rust 反而让我对 c++ 有了更深的理解,我实际工作中也是用的 c++
    nnegier
        13
    nnegier  
       2024-03-03 11:22:03 +08:00 via Android
    楼主要不讲下如何成为 c++菜鸟吧?我现在连 c++的门都没有摸到,楼主都已经用它工作几年了
    agagega
        15
    agagega  
       2024-03-03 14:12:54 +08:00
    如果想知道 C++模板设计 API 的好思路,可以看看 LLVM ,当然不是编译器那块,而是 utils: https://github.com/llvm/llvm-project/tree/main/llvm/include/llvm/Support
    huahsiung
        16
    huahsiung  
       2024-03-03 19:58:04 +08:00
    当然是使用 arch 滚动更新,然后使用 pacman 安装 rustc 和 cargo 。一次可以入两个神教,岂不美哉。

    对于 rust ,我的观点是:“你写我推荐,我写我不写”。

    哪个语言实现功能能满足需求(功能,开发效率,运行效率等等)就用那个语言。什么内存安全,老夫从来都是把指针当飞刀玩的一把梭。

    > XX 机构呼吁放弃使用 C 和 C++ 了。

    你看见有多少程序员忽略 warning 了,只要( CC )编译器能正常跑,这些又算什么。“呼吁”的优先等级可能还不及“warning”。最优先的当然是"error"了,其他的都可以忽略。
    yolee599
        17
    yolee599  
       2024-03-03 21:18:17 +08:00 via Android
    当然了多造轮子啦,写 GUI 库,写加密解密库,写网络协议库……rust 魔教和 ArchLinux 魔教真是无处不在,恼!
    tyzandhr
        18
    tyzandhr  
       2024-03-03 21:47:17 +08:00 via Android
    学类型论。c++就是一部活生生的类型运算手册,rust 这种伪 ml 可不会有
    slideclick
        19
    slideclick  
       2024-03-04 08:49:42 +08:00
    @tyzandhr ml 是啥?一般指机器学习
    weeei
        20
    weeei  
       2024-03-04 09:29:47 +08:00
    C++ 能把智能指针用好就差不多合格了,再去理解其他语言的内存管理设计简直不要太简单。
    kneo
        21
    kneo  
       2024-03-04 09:33:50 +08:00 via Android
    但凡自己上点心,也不至于工作几年还在求教程。
    Evovil
        22
    Evovil  
       2024-03-04 10:04:24 +08:00
    都写几年 c++了,修炼点内功心法,你现在要提高就系统的体系的看书,而不是看各种教程。
    经典那几本书撸一遍吧,看你兴趣在哪块选择自己感兴趣的看起来,计算机原理,数据,架构,网络,设计,然后再付诸实践理解为什么这样设计。

    当然逆向学习,从优秀代码阅读,反思,举一反三,在落实实践也可以,效率会比上面高,但是理解并不一定透彻。

    如果 c++要成为高手,只能成为时间的朋友了,很多坑没写个三五六七八年是遇不到的,也淌不过去的。我一般选择 c 或者 rust 。
    tyzandhr
        23
    tyzandhr  
       2024-03-04 10:07:52 +08:00 via Android
    @slideclick 元语言
    xuelang
        24
    xuelang  
       2024-05-11 13:17:42 +08:00
    深度探索 C++对象模型这本书确实很好,我最近也在看。

    然后梳理了一篇文章,欢迎一起交流。

    [结合实例深入理解 C++ 对象的内存布局]( https://selfboot.cn/2024/05/10/c++_object_model/)
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2626 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 43ms UTC 09:01 PVG 17:01 LAX 01:01 JFK 04:01
    Do have faith in what you're doing.
    ubao msn 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