1、两种初始化方式,直接初始化语法更灵活,且效率更高。
int ival(); // 直接初始化 direct-initialization
int ival = ; // 赋值初始化 copy-initialization
2、const变量与一般变量的不同
//一般变量的用法
// file_1.cc
int counter; // 在file_1.cc中定义
// file_2.cc
extern int counter; // 在file_2.cc中使用
++counter;
//const变量用法
// file_1.cc
extern const int bufSize = fcn(); //在file_1.cc中定义,需要有extern修饰
// file_2.cc
extern const int bufSize; // 在file_2.cc中使用
3、引用
//一般引用
int ival = ;
int &refVal = ival; // refVal引用ival,要求ival与refVal类型一致
// const 引用
const int &refval=; //静态引用可以直接以赋值 double dval = 3.14;
const int &refval2=dval; // 静态引用可以使变量类型不同,赋值时,会将dval转换为 int类型,然后赋值,结果为3
4、枚举
enum Points { point2d = , point2w,point3d = , point3w }; // 赋值
Points pt3d = point3d; // ok: point3d is a Points enumerator
Points pt2w = ; // error: pt2w initialized with int
pt2w = polygon; // error: polygon is not a Points enumerator
pt2w = pt3d; // ok: both are objects of Points enum type
5、class 、struct
用 class 和 struct 关键字定义类的唯一差别在于默认访问级别:默认情况下,struct 的成员为 public,而 class 的成员为 private。
6、头文件
因为头文件包含在多个源文件中,所以不应该含有变量或函数的定义。