现在的位置: 首页 > 综合 > 正文

2010/10/25

2013年08月15日 ⁄ 综合 ⁄ 共 930字 ⁄ 字号 评论关闭

2010/10/25

关键字:声明、定义、const、引用

 

头文件用于声明而非定义。

头文件包含在多个源文件中,所以不应该含有变量或函数的定义。

变量、函数定义只可以出现一次,声明可以出现多次。

extern int val = 10;    //虽然有extern但是有初始化式,所以这是一个定义。

double d;               //虽然没有初始化式,但是没有extern,所以也是定义。

 

const对象默认为文件的局部变量。在函数内声明,则为函数的局部变量,在全局作用域中声明则为文件的局部变量。

在全局作用域中定义非const变量时,它在整个作用域中都可以访问。

通过指定const变量为extern,也可以在整个程序中访问const对象:

file_1.cc

extern const int bufSize = fcn();

file_2.cc

extern const int bufSize;

注意:const对象若想在整个作用域都可以访问,则必须在声明时用extern标识,而非const对象则不需要。

 

不能定义引用类型的引用,可以定义其他类型的引用。

const引用必须用与引用同类型的对象初始化,而const引用可以绑定到不同但相关的类型的对象或绑定到右值。

int val = 1024;

int &r1 = val;              //ok

int &r2 = 1024;             //error

int &r3;                    //error

const int &r4 = 42;         //ok

const int &r5 = val + r4;   //ok

 

double dval = 3.14;

const int &r6 = dval;

//编译器实际是这样编译的:

int temp = 42;

const int &4 = temp;

double dval = 3.14;

int temp = dval;

const int &r6 = temp;

 

当引用初始化后,只要该引用存在,它就保持绑定到初始化时指向的对象。不可能将引用绑定到另一个对象。const引用是指向const对象的引用。

int i = 1024, &ref = i;     //i为整型,ref为引用。

const val = 1024;

const int &ref = val;

抱歉!评论已关闭.