随笔分类 - effective c++
c++编程的一些建议
摘要:定制new 和delete 49.了解new handle 的行为 set_new_handler允许客户指定一个函数,在内存分配无法获得满足时被调用. Nothrow new 是一个颇为局限的工具,因为它只适用于内存分配;后继的构造函数调用还是可能抛出异常 50. 了解new和delete的合理替
阅读全文
摘要:继承与面向对象设计 32. 确定你的public继承塑模出is a关系 "public继承"意味is a.适用于base classes身上的每一件事情一定也适用于derived classes身上,因为每一个derived class对象也都是一个base class对象 33. 避免遮掩继承而来
阅读全文
摘要:实现 26.尽可能延后变量定义式的出现时间 尽可能延后变量定义式的出现.这样做可增加程序的清晰度并改善程序效率. 27.尽量少做转型动作 如果可以,尽量避免转型,特别是在注重效率的代码中避免dynamic_casts.如果宇哥设计需要转型动作,试着发展无需转型的替代设计 如果转型是必要的,试着将它隐
阅读全文
摘要:设计与声明 18.让接口容易被正确使用,不易被误用 好的接口很容易被正确使用,不容易被误用.你应该在你的所有接口中努力达成这些性质 "促进正确使用"的办法应该包括接口的一致性,以及与内置类型的行为兼容. "阻止误用"的办法包括建立新类型,限制类型上的操作,束缚对象值,以及消除客户的资源管理责任 tr
阅读全文
摘要:资源管理 所谓资源就是,一旦用了它,将来必须还给系统. 13.以对象管理资源 为防止资源泄露,请使用RAII对象,他们在构造函数中获得资源并在析构函数中释放资源. 两个常被使用的RAII classes 对象分别是trl::shared_ptr和auto_ptr.前者通常是较佳选择,因为其copy行
阅读全文
摘要:构造/析构/复制运算 05.了解C++默默编写并调用哪些函数 如果你没有声明,编译器就会为他声明一个copy构造函数,一个copy assiggnment操作符和一个析构函数,如果没有构造函数,编译器会为你声明一个default构造函数.所有这些都是public且inline. 注意: 编译器可以暗
阅读全文
摘要:让自己习惯C++ 01.视c++为一个语言联邦 C Object Oriented C++ Template C++ STL C++ 高效编程守则视状况而变化,取决于你使用C++的哪个部分 02.尽量以const, enum, inline 替换#define (以编译器替换预处理器) 对于单纯常量
阅读全文

浙公网安备 33010602011771号