一起学C++高级编程
体会
从事编程的时间越长,对C++的喜爱就越多,也越能体会C++的灵活所能带来的快感,对c++的求知欲也更强烈。由于c++的能力始终徘徊在函数和简单类的层次,对c++的一些机制还没有清晰的认识,每次写代码时都需要复制粘贴,这种感觉很难受,每次相同的知识点都要反复去查,开发效率低下。总结原因都是因为对c++的认识还停留在较低的层次,所以无法得心应手的使用这们语言。C++高级编程这本书是提高c++语言能力的不二选择,仅仅是看了第一章,给我的感觉就大不相同。每个知识点都讲得十分透彻,都能将c++的迷雾散去一些。下面就一起开始C++进阶吧。
重新认识c++,从iostream头文件开始
新建Visual C++空项目
项目里只有几个空文件夹,很干净,我们为项目添加一个cpp文件,输入
#include<iostream>
外部依赖项里增加了很多内容,或许很多人都讨厌这些,但这是无法避免的,我们看似在做一件很简单的事情,可是他的背后极为复杂,VS已经为我们做好了一切。
iostream定义了输入/输出流 cout 和 cin,用cout和cin可以向屏幕输入输出,此外还定义了许多大多数人所不熟悉的内容,此处暂不做追究。大多数人都知道下面这段代码的不能成功编译,因为缺少了std命名空间。
#include<iostream>
int main()
{
cout << "开始学习c++高级编程吧!" << endl;
system("pause");
return 0;
}
正确的写法如下
std::cout << "开始学习c++高级编程吧!" << std::endl;
但我们可能对std::的理解还不够全面,不仅仅是iostream的命名空间是std,而是所有的c++标准库的命名空间都是std。
#include<iostream>
#include<string>
int main()
{
//string的前面同样要指定命名空间std::,否则编译不过
std::string str = "必须要意识到所有我们使用的标准函数库或对象都要使用std::来限定,否则你会经常忘了添加 using namespace std";
std::cout <<str << std::endl;
system("pause");
return 0;
}
通常的,我们的代码是这个样子
#include<iostream>
#include<string>
using namespace std;
int main()
{
string str = "my first program!";//string 的命名空间是std
cout <<str << endl; //iostream的命名空间是std,所有c++标准库的命名空间都是std
system("pause");
return 0;
}