此篇主要学习三个知识点:
1. C++关键字(C++98)
2. C++中的命名空间
3. C++下的输入、输出
1. C++关键字(C++98)
对于C++的关键字,我们不需要特别去“背诵”它,一是:任务量繁重易出错,二是:不能够理解“关键字”,关键在哪里了?这些在日后的学习中会慢慢进行涉及,潜移默化也就懂了。但还是和C语言一样,得记住一些特例,例如define,这个小坑!
2. C++中的命名空间
当变量、函数、类非常多时,它们大多都存在于全局作用域中。而对它们的命名既要做到“见名知意”,又要避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的,其目的是对标识符的名称进行本地化。
2.1 命名空间的定义
定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名空
间的成员。
namespace N1 { // 1.N1为命名空间的名称
//命名空间中既可以定义变量,也可以定义函数
int a;
int b;
int Add(int a, int b) {
return a + b;
}
}
// 2.命名空间可以嵌套
// 嵌套调用的规则为从外到内依次调用
namespace N2 {
int a;
int b;
int Add(int a, int b) {
return a + b;
}
namespace N3 {
int c;
int Add(int a, int c) {
return a + c;
}
}
}
// 3.同一工程下可以允许多个命名空间名字相同
// 编译器最后将其合成到同一个命名空间内
namespace N1 {
int m;
int Add(int a, int m) {
return a + m;
}
}
在工程中,我们定义好了多个命名空间时,还有很重要的一点:避免命名空间的展开,例如using namespace N1、using namespace N2,当有多个空间展开时,同名便会造成重定义!!!
2.2 命名空间的使用
命名空间的使用有三种方式:
1)加命名空间名称及作用于限定符
int main() {
cout << N1::a << endl;
}
2)使用using将命名空间中成员引入
using N1::b;
int main()
{
cout << N1::a << endl;
cout << b << endl;
return 0;
}
3)使用using namespace 命名空间名称引入
using namespce N1;
int main()
{
cout << N1::a << endl;
cout << b << endl;
Add(10, 20);
return 0;
}
针对第3)种方式,在此我们不推荐使用,在平常的学习中所创建的变量、函数、类较少不怎么影响,但我们使用命名空间的作用便是为了防止重复命名出错,命名污染。命名空间展开便没有它的自身价值了。
3. C++下的输入、输出
#include <iostream>
using namespace std;
int main() {
cout << "Hello world!!!" << endl; // 相当于std::cout<<endl;
return 0;
}
就3点进行说明:
1) 使用cout标准输出(控制台)和cin标准输入(键盘)时,必须包含<iostream>头文件及std标准命名空间(与编译器是否支持有关)。
2)采用C++进行输入输出更加方便,无需增加数据格式控制,如:整形--%d,字符--%c。
3)支持连续的输入输出,“>>”其有返回值,即返回一个cin、cout以便下次继续进行输入输出。