Tekkaman

导航

 

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中的寄存器中,这种变量称为寄存器变量

  寄存器是与机器硬件密切相关的,不同类型的计算机,寄存器的数目是不一样的,通常为2到3个,对于在一个函数中说明的多于2到3个的寄存器变量,C编译程序会自动地将寄存器变量变为自动变量
 
  由于受硬件寄存器长度的限制,所以寄存器变量只能是char、int或指针型。寄存器说明符只能用于说明函数中的变量和函数中的形参,因此不允许将外部变量静态变量说明为"register"。

  参考:http://baike.baidu.com/view/3792358.htm

C++之常函数

  

  这个const放在函数后面表示什么?const加在成员函数后面表示,此方法不能修改成员变量数据。const放在函数定义右方是为了与返回值的const区分开。

posted on 2013-04-16 22:07  Tekkaman  阅读(1090)  评论(0编辑  收藏  举报