摘要:
六、继承与面向对象设计 32.确定你的public继承塑模出is-a关系 public继承意味着is-a。适用于base class身上的每一件事情也一定适用于derived class身上。每一个derived class对象也都是一个base class对象。 33.避免遮掩继承而来的名称 编译 阅读全文
摘要:
五、实现 26.尽可能延后变量定义式的出现时间 尽可能延后变量定义式的出现,甚至应该尝试延后这份定义直到能够给他初值实参为止,这样不仅能避免构造和析构非必要对象,避免无意义的default行为,也可增加程序的清晰度并改善程序效率。 27.*尽量少做转型动作 const_cast通常被用来将对象的常量 阅读全文
摘要:
三、资源管理 13.以对象管理资源 1.为了防止资源泄漏,请使用RAII对象,在构造函数里面获得资源,并在析构函数里面释放资源. 2. 引用计数型智慧指针(RCSP):持续追踪多少个指针指向该资源,无人指向他时自动删除该资源,如unique_ptr、shared_ptr和auto_ptr(现在已经没 阅读全文
摘要:
二、构造/析构/赋值运算 05.了解C++默默编写并调用那些函数 如果自己不声明, 编译器就会暗自为class创建一个default构造函数、一个copy构造函数、一个copy assignment操作符(代码合法有意义时编译器才会生成),以及一个析构函数 并且所有的这些都是public且inlin 阅读全文
摘要:
一、让自己习惯C++ 01.视C++为一个语言联邦 c++是多重范型编程 语言,视c++包括4种次语言: 1:C 2:Object-Oreinted C++; 3:Template C++; 4:STL(template程序库,包括容器、迭代器、算法和函数对象)。 02.尽量以const,enum, 阅读全文