一个能快速提升C++复杂代码设计的学习项目,一个能迅速让C++面试官会心一笑的简历项目,一个能在实际项目中使用的项目……学习什么是流?如何利用抽象层面的流编写适用面更广的代码? 每天在用的cout和cin 它们是什么类型?最后还将完整写一个充满 C++ 风味的日志流。
“流 / stream” 并不是C++ 语言独有的概念,但却是 C++ 除泛型之外,最有辨识度的语法实现。几乎所有语言的第一个课,都在使用 “print” 输出 “Hello World”,比如:
- python
print("Hello World")
或者,Java
- Java
System.out.println("Hello World!");
或者, C:
- C
printf("Hello, World!");
但是,C++:
- C++
std::cout << "Hello, World!" << endl;
其中的 <<、std::cin、std::cout、std::endl……这些都是我们初学C++时,每天都在用的东西,在本课程,我们不仅要搞懂它们是什么(各自的类型),更要掌握如何用好它们,比如:
- 如何体现 “面向对象” 的思路,学会面向抽象层面的“流”编程,让我们的代码适用面更广阔?
- 如何让我们自己写的类型,也支持 “<<” 或 “>>” 操作(即:流输出和流输入)?
- 如何使用流实现格式化输入输出?
- ……
在本课程的最后,我们还将从零开始动手,实现一个有着“浓浓的C++风味”的日志流。