如何正确的通过 C++ Primer 学习 C++?(转自知乎)

本文提供了一套实用的学习C++ Primer的方法,强调实践应用而非拘泥于细节。从基础到进阶,详细指导如何把握重点章节,推荐初学者采用现代C++编程习惯。

如何正确的通过 C++ Primer 学习 C++?(转自知乎)

作者:dawnmist
链接:https://www.zhihu.com/question/32087709/answer/54936403
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

个人经验,C++ primer 第一次可以跳着看。关键是要尽快用起来,在使用中熟练,而不是在细节中迷失。
以C++ Primer第五版为例,第一遍读的时候:
Part1也就是前七章,除了6.6,6.7节,都要通读。尤其是第三章初步介绍了vector和string,简直就是新手福音,搞定这两个容器就能写一些简单的程序。
Part2基本就是数据结构和算法,如果有基础读起来很轻松。
9,11两章介绍的容器,以及12.1节的智能指针要通读。多用智能指针和容器,远离segment fault. 第10章里的泛型算法可以慢慢读,读完以后可以写出高逼格的函数式风格C++。12.2节讲了怎么用new和delete分配空间,题主作为新手,知道这种写法就行,写程序时尽量用容器代替原始数组,尤其是代码里最好不要有delete。
Part3是块硬骨头,标题就是Tools for Class Authors. 作为一个”class user”,有些部分第一次是可以略过的。
13章很重要,要细读。初始化,复制,赋值,右值引用是C++里很微妙很重要的部分,别的语言对于这些概念很少有区分得这么细的。这一章不但要精读,还要完全掌握。
14章的操作符重载第一次可以观其大略;14.9节第一次可以跳过。
15章讲OOP,重要性不言而喻。如果之前一点概念都没有,学起来会觉得比较抽象。网上关于OOP有很多通俗有趣的文章,可以一起看看。
16章讲泛型编程,第一次读16.1节,掌握最基本的函数模板和类模板就行了。
Part4就更高档了,很多内容第一次就算啃下来,长久不用又忘了。第一次读推荐把18.2节读懂,命名空间简单易用效果好。别的内容可以观其大略,用时再看。17.1节的tuple是个有趣的东东,可以读一读。17.3节的正则表达式和17.4节的随机数也许有用,也可以读一读。如果需要读写文件,要读一下17.5.2节的raw I/O和17.5.3节的random I/O。

最后给题主的建议是,写C++,要尽量避免C的写法。用static_cast而不是括号转换符;用vector而不是C里面的数组;用string而不是char *;用智能指针而不是原始指针。当然I/O是个例外,printf()还是比cout好用的;转换数字和字符串时sprintf()也比stringstream快。

C++ Primer Plus》第六版是一本非常受欢迎的C++入门书籍,它通过任务导向的示例和丰富的练习题帮助读者掌握C++编程的基础识。书中每章末尾都包含编程练习,这些练习旨在巩固读者对本章内容的理解,并提高实际动手能力。虽然官方并未提供公开的完整答案,但可以通过以下方式获取或参考相关答案: 1. **官方教师资源**:如果你是教师或课程负责人,可以通过出版商Pearson获取官方的教学资源,其中通常包含编程练习的答案[^1]。 2. **在线编程社区**:许多学习者在完成练习后会将自己的答案发布在GitHub、Stack Overflow、Reddit等平台上。通过搜索相关关键词(如`C++ Primer Plus 6th edition solutions`)可以找到部分习题的参考答案。 3. **技术博客和论坛**:一些技术博客和论坛(如优快云、乎专栏、简书等中文平台)也有用户分享的习题解答过程,适合中文读者参考。 4. **配套学习网站**:一些网站如[LearnCPP](https://www.learncpp.com/)虽然不是专为《C++ Primer Plus》设计,但内容结构相近,可以作为补充学习资料,并帮助理解书中练习题的解题思路。 5. **自行练习与验证**:建议读者在尝试解答后,使用编译器运行代码,验证其正确性。同时可以将代码与他人讨论,以获得反馈和改进意见。 ### 示例代码:第2章练习题之一(输出个人信息) 以下是一个简单的示例,展示如何编写一个输出个人信息的C++程序: ```cpp #include <iostream> int main() { std::cout << "姓名: 张三" << std::endl; std::cout << "地址: 中国北京" << std::endl; return 0; } ``` ### 示例代码:第3章练习题之一(温度换) 下面是一个将华氏温度换为摄氏温度的程序: ```cpp #include <iostream> int main() { double fahrenheit; std::cout << "请输入华氏温度: "; std::cin >> fahrenheit; double celsius = (fahrenheit - 32) * 5.0 / 9.0; std::cout << "摄氏温度为: " << celsius << std::endl; return 0; } ``` 上述代码展示了基本的输入输出操作和算术运算,是初学者常见的练习题之一。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值