4

难说| 看来我还没有入门 CPP

 11 months ago
source link: https://bianchengnan.gitee.io//articles/i-am-shocked-by-these-20-cpp-questions/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

难说| 看来我还没有入门 CPP

2022-05-29

|

2023-09-29

| reading

| 热度: 1℃

518 日参加了 Incredibuild 与博览网联合举办的主题为 《深入解析 20 个 c++ 典型输入错误》的线上研讨会。主要讲解了 20C++ 中的典型错误。本以为作为一个 c++ 老鸟,做这些题应该问题不大吧?您猜怎么着?20 道题,我可能没做对 5 道题目。汗!!!

话不多说,请看题。

我这 20 道题截图列在下面,大家可以试试自己对 C++ 的掌握程度。

说明: 以上截图都来自线上研讨会的 PPT,我只是个搬运工。

怎么样?有没有被刺激到?是不是有很多拿不准的地方?对照参考答案来看看自己答对了多少题吧。

参考答案摘录如下:

B C D B A

B B B A C

B D B D C

B D A A B

视频回放地址在下面海报的二维码中,感兴趣的小伙伴儿可以扫码查看。视频中有每道题比较详细的解释,PPT 中有每道题相关的参考资料。PPT 可以通过网盘下载。百度网盘链接: https://pan.baidu.com/s/10FNs6ENXk4uJg6h629fRTw?pwd=xpnv 提取码: xpnv

注意: 观看回放可能需要报名。

poster

我认为这些题考察的比较细节,但是又非常重要。我越来越觉得 C++ 就是这样,如果有些细节不知道,在不知不觉中会有性能损失,甚至会导致错误的行为。用孟岩大佬的话说就是心智负担太重。

比如,新标准中引入的移动语义可以解决拷贝的效率问题。但是如果脑子里没有这根弦儿,很容易漏掉移动构造函数和移动赋值函数。

又比如,编译器会在必要的时候帮我们生成构造函数、析构函数、拷贝构造函数、拷贝赋值运算符、移动构造函数和移动赋值运算符(移动语义)。但是,什么是必要的时候呢?如果我们实现了析构函数,编译器是不会自动为我们生成移动构造函数和移动赋值运算符的。

接触 C++ 时间越多,越能理解 Linus 大神怒喷 C++ 是糟糕程序员的垃圾语言。中文翻译版本链接如下,感兴趣的小伙伴可以读一读。

http://blog.csdn.net/turingbook/archive/2007/09/07/1775488.aspx

总之,不得不承认的一点是这门语言真的是越来越复杂了。也越发觉得我还是太菜了,要学习的东西太多了。

相信,搞 C++ 开发的小伙伴儿一定听过或看过 Scott Meyers 大神的 《Effective C++》《More Effective C++》。强烈推荐一下他的新书 《Effective Modern C++》

如果您想理解 autodecltype、型别推导、万能引用等,一定要好好读读第 1 章第 5 章,相信一定能对相关概念有全新认识。如果您对智能指针感兴趣,一定要好好读读 第 4 章,本以为自己对智能指针了解的够透彻了,再读后又有了新收获。

不知道这 20 道题,您做对了几道呢?私信聊聊您对这些题目的看法吧。

BianChengNan wechat
扫描左侧二维码关注公众号,扫描右侧二维码加我个人微信:)

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK