目录
1.C++关键字
C++有63个关键字,C语言有32个关键字,存在重叠如荧光笔标出
2.命名空间
作用域方面的优化
如果变量,函数和类的名称都存在于全局作用域中,可能会导致很多冲突
这时候就可以用到命名空间啦,目的是:对标识符的名称本地化,以避免命名冲突或名字污染
a.命名空间定义
使用到namespace + 命名空间的名字 + { }
1.正常的命名空间定义
2.命名空间可以嵌套
3.同一个工程中允许存在多个相同的命名空间,编译器最后会合成到一个空间中
ps: 一个工程中的.h和上面的.cpp中两个N1会被合并成一个
注意:一个命名空间就定义了一个新的作用域
b.命名空间使用
默认查找规则:
局部 -- 全局 -- using命名域(展开后为一种声明)
有三种方式
1.加命名空间名称及作用域限定符
2.使用using将命名空间中某个成员引入
3.使用using namespace 命名空间名称 引入
3.C++ 输入&输出
由以上代码可以提取出c++的一个模板:
#include<iostream>
using namespace std;
cin>>a>>b>>endl;
cout<<a<<b<<endl;
1. 使用cout标准输出对象(控制台)和cin标准输入对象(键盘)时,必须包含< iostream >头文件
以及按命名空间使用方法使用std。
2. cout和cin是全局的流对象,cout作用类似于printf,cin作用类似于类似于scanf。endl是特殊的C++符号,现在可以将它看作‘\n’,他们都包含在包含<iostream >头文件中。
3. <<表示插入out,像打开袋子释放一样;>>表示in,像收紧袋子读入一样。
4. 使用C++输入输出更方便,不需要像printf/scanf输入输出时那样,需要手动控制格式。 C++的输入输出可以自动识别变量类型。
-
头文件注意: 早期标准库将所有功能在全局域中实现,声明在.h后缀的头文件中,使用时只需包含对应 头文件即可,后来将其实现在std命名空间下,为了和C头文件区分,也为了正确使用命名空间,规定C++头文件不带.h;旧编译器(vc 6.0)中还支持<iostream.h>格式,后续编译器已不支持,因此推荐使用<iostream>+std的方式。
#include <iostream>
using namespace std;
int main()
{
int a;
double b;
char c;
// 可以自动识别变量的类型
cin>>a;
cin>>b>>c;//输入b,c
cout<<a<<endl;
cout<<b<<" "<<c<<endl;
return 0;
}
// ps:关于cout和cin还有很多更复杂的用法,
比如控制浮点数输出精度,控制整形输出进制格式等等。
因为C++兼容C语言的用法,可以用c语言实现这些要求,
这些又用得不是很多,我们这里就不展开学习了。
后续如果有需要,我们再配合文档学习。
- std命名空间的使用惯例:
1. 在日常练习中,建议直接 using namespace std 即可,这样就很方便。
2.using namespace std 展开,标准库就全部暴露出来了,如果我们定义跟库重名的类型 / 对象 / 函数,就存在冲突问题。该问题在项目开发中代码较多、规模大,就很容易出现。所以建议在项目开发中使用方案1,2
3.在一些oj题中,面对c++许多的头文件,可以使用万能头文件 #include<bits/stdc++.h>
//专栏持续更新中,敬请期待~