C++基础
声明与定义
声音与定义的区别在于,声明没有给变量分配空间,而定义则给变量分配了空间;定义也是声明。
extern int i; // 声明但未定义
int i ; //声明且定义
extern double PI = 3.14; //声明且定义
文件用于声明而不是定义。之所以这样的原因是有时候一个程序可能包括多个文件,若有两个以上的文件含有上述一个定义都会导致多重定义链接错误。
因为头文件包含在多个源文件中,所以不应该包含变量或函数的定义。
引用
引用是对象的另一个别名,并且在声音的时候就要初始化。
int value = 30; //value = 30
int &ref = value; //&ref = &value,即地址;ref = 30
因此在引用上的操作都是对作用在该引用绑定的对象上。
ref += 2; //
cout<<value<<endl; // value = 32
而且需要注意的是,引用具有“如一性”,即当初始化后,其绑定的对象不可更改,不能再绑定另一个对象。
typedef名字
typedef用于定义类型的同义词。
typedef double wages;
typedef int exam_score;
wages hour, week; // double hour,week;
exam_score result; // int result;