本文共 1617 字,大约阅读时间需要 5 分钟。
命名空间的定义:namesapce名字{变量、函数}
命名空间的使用: 使用作用域限定符:命名空间的名字::变量名或者函数名 使用using关键字导入命名空间:using namespace 命名空间;using 命名空间::变量名或者函数名 命名空间注意事项 不能访问其他源文件的命名空间 当多个源文件的命名空间名字相同时,如果没有出现重复的变量名和函数名,系统会合并两个命名空间Cin:输入流 cout:输出流 cerr:错误流 clog:日志流 流对象
流运算符: >> 输入 << 输出 Printf:行缓冲:满一行输出或者遇到”\n” Scanf输入前刷新缓冲区 垃圾问题:getchar() 或者 cin.get()基本语句的升级
for语句:优化循环变量的作用域 条件表达式:可以做左值关键字的升级
***register关键字***的升级:尽可能的将该变量保存到CPU内部寄存器中,从而省去从内存抓取数据的时间,提高程序的运行效率 //注意事项:只能修饰局部,不能修饰全部变量和函数 register修饰变量,不能通过&获取该变量的地址 Register修饰的变量类型必须是CPU所能够接受的数据类型Int max = a > b ? a : b( a > b ? a : b) = 69
const关键字:修饰变量,只读变量
const关键字的升级:const修饰是常量 地址之间的赋值必须是const对constAuto关键字
C语言auto关键字:自动变量,只是用来说明该变量的作用域;相当于局部变量 C++:auto:类型推导,实现高效率编程***using关键字***的升级:替代C语言typedef的关键字
***typedef关键字***的作用:给类型重命名的;提高代码可读性、移植性
Using Int = int;//typedef int Int;Using Len = int;//typedef int Len;
C++对C的升级:类型的升级
引入了bool类型 Bool flag = false; 引入了“引用” 引用:给变量起别名,定义引用必须初始化,一旦绑定就不能再次绑定到其他变量上 作用:解决函数传值和传地址问题; 应用场景:作为函数的形参;作为函数的返回值(函数的调用可以做左值) 常引用:const修饰的引用;绑定常量C++11引用的分类:左值引用(&):只能绑定左值、右值引用(&&):只能绑定右值
左值:可以取地址可以修改 右值:不能取地址,不能修改 Int num = 5;Int &l_num = num;//左值引用Int &&r_num = 5;//右引用Int &&r_num = std::move(num);
Std::move()将左值转换为右值
为什么要引入右值引用?实现对象移动,解决临时对象拷贝开销的问题; 引用是不是数据类型?(不是)它占不占用内存空间?(运行时不占用内存空间,编译时预留内存空间)!!!!!!!!!!!!!C++对C的升级:malloc\free
引入了new,delete运算符来替代malloc,free 1.malloc按照字节为单位,new可以初始化 2.malloc不能初始化内存,new可以初始化 3.malloc是函数,new是运算符C++对C的升级:函数的升级
引入inline关键字修饰函数;用(内存)空间换运行时间 引入默认参数:可以给形参设置默认参数 规则:默认参数右边的参数必须全为默认参数 可以函数重载,可以使用相同的函数名,重载规则:形参的个数,类型或者顺序不同 注意事项:函数返回值不能作为重在条件;默认参数会影响重载条件思考题:
指针和引用的区别? 什么是对象移动转载地址:http://wjjwn.baihongyu.com/