Effective C++ chapter 2. 构造 / 析构 / 赋值运算 (Constructors, Destructors, and Assignment Operators) Item 6. 若不想使用编译器自动生成的函数,就该明确拒绝 (Explicitly disallow the use of compiler-generated functions you do not want) 地产中介商卖的是房子,一个中介软件系统自然而然想必有个 class 用来描述待售房屋: cla…
Effective C++ chapter 2. 构造 / 析构 / 赋值运算 (Constructors, Destructors, and Assignment Operators) Item 5. 了解 C++ 默默编写并调用哪些函数 (Know what functions C++ silently writes and calls) 当 C++ 处理过一个 empty class (空类)之后,其便不再是一个 empty class.如果你自己没有声明,编译器就会为它声明(编译器版本的…
Effective C++ Chapter 1. 让自己习惯C++ (Accustoming Yourself to C++) Item 4. 确定对象被使用前已先被初始化 (Make sure that objects are initialized before they're used.) 通常如果你使用 C part of C++ 而且初始化可能招致运行期成本,那么就不保证发生初始化.一旦进入 non-C part of C++, 规则有些变化.这就很好地解释了为什么 array (来自…
C++ const 允许指定一个语义约束,编译器会强制实施这个约束,允许程序员告诉编译器某值是保持不变的.如果在编程中确实有某个值保持不变,就应该明确使用const,这样可以获得编译器的帮助. 1.const 修饰成员变量 1 #include<iostream> 2 using namespace std; 3 int main(){ 4 int a1=3; ///non-const data 5 const int a2=a1; ///const data 6 7 int * a3 = &…
Effective C++ Chapter 1. 让自己习惯C++(Accustoming Yourself to C++) Item 1. 视C++为一个语言联邦(View C++ as a federation of languages) 将 C++ 视为由四个次语言组成的语言联邦,在某个次语言中,各种守则与通例都倾向于简单.直观易懂.且容易记住.但从一个次语言移往另一个次语言,守则可能改变. C —— C++ 以 C 为基础.区块(blocks).语句(statements).预处理器(p…
C++ const 允许指定一个语义约束,编译器会强制实施这个约束,允许程序员告诉编译器某值是保持不变的.如果在编程中确实有某个值保持不变,就应该明确使用const,这样可以获得编译器的帮助. 1.const 修饰成员变量 #include<iostream> using namespace std; int main(){ ; ///non-const data const int a2=a1; ///const data int * a3 = &a1; ///non-const d…
http://www.cnblogs.com/xudong-bupt/p/3509567.html C++ const 允许指定一个语义约束,编译器会强制实施这个约束,允许程序员告诉编译器某值是保持不变的.如果在编程中确实有某个值保持不变,就应该明确使用const,这样可以获得编译器的帮助. 1.const 修饰成员变量 1 #include<iostream> 2 using namespace std; 3 int main(){ 4 int a1=3; ///non-const data…
class GamePlayer{private: static const int NumTurns = 5; int scores[NumTurns]; ...}; 万一你的编译器(错误地)不允许“static整数型class常量“完成”in class初值设定“,可改用所谓的”the enumhack" 补偿做法.其理论基础是:“一个属于枚举类型(enumerated type)的数值可权充ints被使用”,于是GamePlayer可定义如下: class GamePlayer{priva…