摘要: 杂项讨论 53.请不要轻忽编译器的警告 严肃对待编译器发出的警告信息.努力在你的编译器的最高(最严苛)警告级别下争取"无任何警告"的荣誉. 不要过度依赖编译器的报警能力,因为不同的编译器对待事情的态度并不相同.一旦一直到另一个编译器上,你原来依赖的警告信息有可能消失. 54. 让自己熟悉包括TR1在 阅读全文
posted @ 2018-12-22 22:39 overfitover 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 定制new 和delete 49.了解new handle 的行为 set_new_handler允许客户指定一个函数,在内存分配无法获得满足时被调用. Nothrow new 是一个颇为局限的工具,因为它只适用于内存分配;后继的构造函数调用还是可能抛出异常 50. 了解new和delete的合理替 阅读全文
posted @ 2018-12-22 22:24 overfitover 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 模板与泛型编程 41.了解隐式接口和编译期多态 classes 和 templates 都支持接口(interfaces)和多态(polymorphism) 对classes而言接口是显式的(explicit),以函数签名为中心.多态则是通过virtual函数发生于运行期. 对template参数而 阅读全文
posted @ 2018-12-22 22:03 overfitover 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 继承与面向对象设计 32. 确定你的public继承塑模出is a关系 "public继承"意味is a.适用于base classes身上的每一件事情一定也适用于derived classes身上,因为每一个derived class对象也都是一个base class对象 33. 避免遮掩继承而来 阅读全文
posted @ 2018-12-22 17:22 overfitover 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 实现 26.尽可能延后变量定义式的出现时间 尽可能延后变量定义式的出现.这样做可增加程序的清晰度并改善程序效率. 27.尽量少做转型动作 如果可以,尽量避免转型,特别是在注重效率的代码中避免dynamic_casts.如果宇哥设计需要转型动作,试着发展无需转型的替代设计 如果转型是必要的,试着将它隐 阅读全文
posted @ 2018-12-22 16:34 overfitover 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 设计与声明 18.让接口容易被正确使用,不易被误用 好的接口很容易被正确使用,不容易被误用.你应该在你的所有接口中努力达成这些性质 "促进正确使用"的办法应该包括接口的一致性,以及与内置类型的行为兼容. "阻止误用"的办法包括建立新类型,限制类型上的操作,束缚对象值,以及消除客户的资源管理责任 tr 阅读全文
posted @ 2018-12-22 16:03 overfitover 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 资源管理 所谓资源就是,一旦用了它,将来必须还给系统. 13.以对象管理资源 为防止资源泄露,请使用RAII对象,他们在构造函数中获得资源并在析构函数中释放资源. 两个常被使用的RAII classes 对象分别是trl::shared_ptr和auto_ptr.前者通常是较佳选择,因为其copy行 阅读全文
posted @ 2018-12-22 15:12 overfitover 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 构造/析构/复制运算 05.了解C++默默编写并调用哪些函数 如果你没有声明,编译器就会为他声明一个copy构造函数,一个copy assiggnment操作符和一个析构函数,如果没有构造函数,编译器会为你声明一个default构造函数.所有这些都是public且inline. 注意: 编译器可以暗 阅读全文
posted @ 2018-12-22 14:50 overfitover 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 让自己习惯C++ 01.视c++为一个语言联邦 C Object Oriented C++ Template C++ STL C++ 高效编程守则视状况而变化,取决于你使用C++的哪个部分 02.尽量以const, enum, inline 替换#define (以编译器替换预处理器) 对于单纯常量 阅读全文
posted @ 2018-12-21 16:24 overfitover 阅读(141) 评论(0) 推荐(0) 编辑
摘要: IO特性 输入流特性 根据空格来读取和分割数据,其中空格的个数不影响数据的读取: cin n f s; 例如: 10 4.5 abd 和10 4.5 abd没有区别 按行读取数据: istream& getline (istream& is, string &str, char delim='\n' 阅读全文
posted @ 2018-12-21 11:34 overfitover 阅读(223) 评论(0) 推荐(0) 编辑