【C++匿名对象】
C++也有匿名对象,只在当行代码有用,离开当行代码立马析构。
【mutable of C++】
mutalbe的中文意思是“可变的,易变的”,跟constant(即C++中的const)是反义词。
在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。
参考:http://dev.yesky.com/393/3007393.shtml
【C++ explicit】
explicit作用于构造函数,用于禁止隐式转换。
按照默认规定,只有一个参数的构造函数也定义了一个隐式转换,将该构造函数对应数据类型的数据转换为该类对象,如下面所示:
class String { String ( const char* p ); // 用C风格的字符串p作为初始化值 //… } String s1 = “hello”; //OK 隐式转换,等价于String s1 = String(“hello”);
参考:http://www.cnblogs.com/cutepig/archive/2009/01/14/1375917.html
【C++之使用enum、inline替换define】
1、enum替换define。
enum会有类型检察,define没有类型检查。
2、inline替换define.
可避免a++这样的问题。
int a=5,b=0; CALL_WITH_MAX(++a,b); //a被累加两次 CALL_WITH_MAX(++a,b+10); //a被累加一次
【C++之寄存器变量】
在程序运行时,根据需要到内存中相应的存储单元中调用,如果一个变量在程序中频繁使用,例如循环变量,那么,系统就必须多次访问内存中的该单元,影响程序的执行效率。因此,C\C++语言还定义了一种变量,不是保存在内存上,而是直接存储在CPU中的寄存器中,这种变量称为寄存器变量。
参考:http://baike.baidu.com/view/3792358.htm
【C++之常函数】
这个const放在函数后面表示什么?const加在成员函数后面表示,此方法不能修改成员变量数据。const放在函数定义右方是为了与返回值的const区分开。