从 5 月初 ~ 8 月 16 日,每天基本都在啃 C++ 的语法。起初直接看C++ Primer 中文版(第 5 版),发现后边的章节看着很吃力。所以就转而看了清华大学郑莉老师和李超老师的视频C++语言程序设计基础(自主模式)、C++语言程序设计进阶 (自主模式),看完然后(5 月底)再次开始啃前面那本书。下面是我参考一些资料书写的章节参考答案以及一些笔记。
建议:
-
利用C++ Primer 英文版(第 5 版)的课后练习描述在 stackoverflow 搜索问题解答(善用 Google);
-
参考国内版本的习题集解答一书(尽管有个别错误,但不失为一本好书。喜欢书中的【出题思路】和【解答】的知识点讲解)—— C++ Primer习题集(第5版);
-
参看 GitHub 网友的解答。比如:
你应该可以搜到更多的关于习题的解答。学习过程中,我参考了很多习题解答,但是发现有些参考答案虽然没错,可是程序思路和逻辑很不清晰,程序不够优雅。这里优先推荐书籍配套网站上的代码,虽然只有部分解答,但是程序和注释清晰明了。
-
最后,希望您有什么问题和独特的见解,欢迎在对应章节留言。转载注明出处即可~
-
第 Ⅰ 部分 C++基础 -
第 Ⅱ 部分 C++标准库 -
第 Ⅲ 部分 类设计者的工具
以上代码运行环境均为:
- IDE:CLion
- 编译器:clang(有网友留言得知,使用微软的C++编译器,会有错误。如参考此贴,请尽量保持编译器一致,减少学习过程中的负担)
- 使用CLion查看C++编译器版本代码如下(编译器版本用最新的应该也行,保持编译器是
clang
就行):
#include <iostream>
using namespace std;
int main() {
// __clang__ 和 __clang_version__:用于检测 Clang 编译器及其版本。
cout << __clang__ << " | " << __clang_version__ << endl;
// __GNUC__ 和 __VERSION__:用于检测 GCC 编译器及其版本。
cout << __GNUC__ << " | "<< __VERSION__ << endl;
// 输出 C++ 标准版本
cout << __cplusplus << endl;
return 0;
}
/*
* 199711L 对应于 C++98
* 201103L 对应于 C++11
* 201402L 对应于 C++14
* 201703L 对应于 C++17
* 202002L 对应于 C++20
* 输出:
*
* 1 | 14.0.0 (clang-1400.0.29.102)
* 4 | Apple LLVM 14.0.0 (clang-1400.0.29.102)
* 201103
*
* Process finished with exit code 0
*/
评论区