一、命名空间
1、命名空间的作用?
防止变量名、函数名、类名发生命名冲突。
2、如何定义命名空间?
namespace + 空间名 + { }
3、如何使用命名空间?
命名空间名 + :: + 变量名或函数名
!!(注意:命名空间可以嵌套使用)
4、std :标准命名空间 using namespace std
举例:输出语句就可以直接用:cout << " " << endl,否则得用:std:: cout <<" " <<endl
5、C语言如何解决命名冲突的问题?
static关键字—> 修饰全局变量、局部变量、函数
当static修饰全局变量时:该全局变量只能在本文件访问,不能在其他文件里访问。
二、输入输出用法
(cout 、cin、 cerr、 clog、endl == 对象)
1、cout输出流、cin输入流、cerr出错输出流、clog日志流、endl刷新缓冲区
2、<< >>输入输出运算符
3、所有的输入输出都是有缓冲区的,缓冲区的类型分为:行缓冲、全缓冲、无缓冲。
4、为什么要刷新缓冲区?
减少与内核交互,提高运行效率
5、刷新缓冲区的方法?
endl对象、cout.flush(); 、 ‘\n’ 、return 0 、cin
6、cout使用:任意类型组合,比如: cout << “num:” << 5
7、 cin输入(获取输入,遇到空格结束操作)
cin.get(); //消除输入时产生的垃圾
8、cerr 、clog 、cout都是输入,用法一样
三、实用性加强
1、for 功能增强
1)、声明定义
2)、foreach用法
2、auto关键字:
在C中,auto修饰的变量称之为自动变量(强调变量的生命周期);
在C++中,auto作类型推导,提高编译效率
例如: int num = 5;
auto num2 = num;
3、extern关键字:
extern(外部的)声明变量或函数为外部链接,即该变量或函数名在其它文件中可见。被其修饰的变量(外部变量)是静态分配空间的,即程序开始时分配,结束时释放。
4、bool类型关键字:(常用于条件判断和函数返回值)
bool(布尔)类型,其值可选为 true或者 false。
C++ 中的 bool 类型可以和 int 混用,具体来说就是 0 代表 false,非 0 代表 true。
5、register关键字:
——作用:尽可能的将修饰的变量保存在cpu的内部寄存器中,省去了CPU到内存中抓取数据的时间,提高程序的运行效率,
——修饰: 不能修饰全局变量,也不能修饰函数,只能修饰局部变量
——使用时的注意事项:
1)不能用&来获取register修饰的变量(&内存地址)
2)register修饰的变量的数据类型一定是CPU所接受的数据类型;
——什么变量用register修饰:频繁访问变量
——C++对register的升级:当用&获取寄存器变量的地址,它会将该变量重新加载到内存中
volatile关键字:防止编译器将所修饰的变量加载到寄存器中进行优化
6、条件运算符(三目运算符):
该运算符由问号(?)和冒号(:)组成,其格式如下:
表达式 ? 表达式 : 表达式
语句实例: x < 0 ? y = 10 : z = 20;