Effective C++ 学习笔记
1. 基础部分 Item 1: View C++ as a federation of languages. 对于内建类型,按值传递优于按引用传递,对于自定义类型则相反。 C++可视为4中子语言的联合:C,Object-Oriented C++,Template C++和STL。 Item 2: Prefer consts, enums, and inlines to #defines. 只有整型常量可以在类声明里面初始化: class Klass { const static int num = 1 ; //也可只声明,在定义文件中,即类外部定义、初始化; }; enum类型也可以在类内部初始化。 Item 3: Use const whenever possible. 对于指针p,const在 * 左边时,p指向的值为常量,const出现在 * 右边时,p指向的地址为常量。 const int * p1 ; int const * p2 ; int * const p3 ; //以上代码,p1和p2一样,其指向的值为常量;p3指向的地址为常量 如果类Klass有同名的两个成员函数foo,其中一个为const类型,那么const实列优先调用const版的foo。 const函数不能改变非static的成员变量。 mutable修饰的成员,在const函数中也可以改变其值。