【说明】参考书目为:《C++ Primer Plus 第五版》,主要用的编译器为Dev C++,因为这个软件比较小。此外本系列主要为学习笔记,由于本人之前学过C语言,所以主要记录一些我看到的和C语言不同之处。
【第二章】开始学习C++
和C一样,学习C++第一件事情就是利用C++输出一条语句,与C利用printf不同,C++利用cout和<<符号显示更加直观的一种语言流动,利用下面的代码配合理解。
// the introduction of 'cout' and 'cin'
#include <iostream>
int main ()
{
using namespace std;
//plan 1
cout << "New Day";
cout << endl;
//equal to plan 2
cout << "New Day" << endl;
//equal to plan 3
cout << "New Day\n";
//input
int age;
cout << "What's your age?" << endl;
cin >> age;
cout << "OK, your age is " << age;
return 0;
}
【代码分析】
1. 首先#include是头文件,类似于python和matlab等引入一个扩展包,里面包含了很多可用的函数,方便后面的编程。
2. 和C有一样,函数模块从main函数开始:这里要注意的是,matlab可以不使用函数体而进行简单的运算,但是C和C++所有的运算过程都需要在函数体中进行。
3. cout代表输出函数,后面可以接”字符串“,变量等,在<<符号后面的语句,可以看作是排队等待出门的人,所以要一个个按顺序出来。无特定的指令不会换行。所以plan 1和plan 2表示相同的输出结果。
4.换行在C++中有两种表示方式①endl方式,②\n方式(和C中一样),所以plan 2和plan 3又会有相同的结果。在写代码的时候要注意,对于每一行都要加上分号,否则编译的时候会报错,这和Matlab,分号表示是否显示输出结果是不一样的。
5. 同样cin 表示从用户那里获得一个输入,>>很好的给了我们一个方向感。可能有人觉得疑惑为什么不是age >> cin,可以这样理解,cin 和 cout 函数都是指在最后操作界面(黑框)上的过程,无论是输出语句还是我们自己输入参数都是在黑框上进行的,那么cin(黑框)>> age(内存)。
6. 要注意的是,和C一样,对于存储位置,C++要提前定义type和名称,这和matlab可以直接输入age = xx;是不一样的。
【零碎知识】
1. using spacename std
这是C++为了区分不同空间相同函数名称的一种方法,对于之后要将很多模块的代码合并在一起的时候有很大用处,例如你写的代码和别人写的代码都有一个叫number的函数,那么你叫A,他叫B,他的函数则全称为B::number,你的为A::number。可以用下面一个例子看到:
// the introduction of namespace
#include <iostream>
int main ()
{
//using namespace std;
std::cout << "New Day";
std::cout << std::endl;
//equal to
std::cout << "New Day" << std::endl;
//equal to
std::cout << "New Day\n";
//input
int age;
std::cout << "What's your age?" << std::endl;
std::cin >> age;
std::cout << "OK, your age is " << age;
return 0;
}
这个代码没有using namespace std这句话,而是对这个空间下面的函数都用了std::的方式,运行可以看到结果和上面一个代码一致。
//2021 12 9日记:后面应该会陆续更新,将这本书看完,想要一起学习C++的可以关注一下
|