变量可用表达式初始化
{}内部作用域,可定义与外部变量同名的变量。内部变量隐藏了外部变量(新定义的变量说了算)
在for循环中可以定义局部变量,作用于for循环这一内部作用域
在函数内部,想要访问和内部变量同名的全局变量,可使用全局作用域限定"::"
eg:cout<<::a< 引用,不涉及将实参拷贝给形参(传值),无额外内存开销,效率高,尤其当实参占据很大内存时 想提高效率,又不希望形参的修改影响实参,可以将形参类型写为const int& x,就无法在子函数中对其进行修改了 inline(在函数最前方加上该关键字)内联函数,为了解决频繁调用小函数,占用大量栈空间的问题。将函数调用,替换成函数中的简单语句,以提高程序执行效率。 小函数中不能包含复杂的结构控制语句,且不能递归(程序调用自身),编译器才会将内联函数,内联展开 try-catch处理异常情况,正常代码放在try块,catch中捕获try块抛出的异常 throw,抛出异常对象,try块中throw后,下面的代码就都不会执行 catch(...){...},万能接盘侠,接收之前没被捕获到的异常 try{ if(num>50) throw 1; if(num<50) throw 1; throw "hello"; } catch(int result){ //这个catch块只能捕获到整形异常。字符串类异常可用const char* s来捕获 ... } 重载,分为函数重载(类型或个数不同)、运算符重载。允许在同一作用域中,为函数和运算符指定多个定义。 运算符重载,当用户自定义类型使用运算符时,需进行运算符重载。 编译器转换成的函数形式:operator<<(cout,m); //其中m为Man类型 声明模板类型参数时,typename全面优于class 当T是一个类,且这个类有子类时,应该用template typename T::innerClass myInnerObject,此时不能用class。typename告诉编译器,T::innerClass是一个类innerClass是T的子类,程序要声明一个T::innerClass类的对象,而不是声明T的静态成员innerClass。



