
Effective C++
文章平均质量分 83
tianya_team
关注抖音号:天天coding,免费获得源码以及技术指导。
展开
-
Conclusion for Designs and Declarations
条款18: 1.欲开发一个“容易被正确使用,不容易被误用”的接口,首先必须考虑客户可能做出什么样的错误。 例如: class Date{ public: Date(int month, int day, int year); //... };客户可能很容易犯下至少两个错误: 第一,以错误的次序传递参数:Date d(30,3,1995);第二,传递一个无效的月份或天数: Date d原创 2015-12-08 10:43:48 · 258 阅读 · 0 评论 -
Conclusion for Resource Management
条款13: 1.再看工厂函数 我们使用一个投资行为库,其中各式各样的投资行为继承自一个root class Investment: class Investment{};进一步假设这个程序库通过工厂函数(条款7)供应我们特定的Investment对象: Investment* createInvestment(); //返回指针,指向Investment继承体系的动态分配对象。调用者有责原创 2015-12-08 19:30:50 · 269 阅读 · 0 评论 -
Conclusion for Accustoming Yourself to C++
条款01: 1.C++是一个同时支持过程形式、面向对象形式、函数形式、泛型形式、元编程形式的语言。 条款02: 1.宁可以编译器替换预处理器 #define ASPECT_RATIO 1.653记号名称ASPECT_RATIO也许从未被编译器看见,在编译器开始处理源码之前它就被移走了。于是ASPECT_RATIO可能没有记号表内。当运行此常量获得错误信息时,错误信息提到1.原创 2015-12-09 18:15:07 · 342 阅读 · 0 评论 -
exception,smart_ptr
// Workshop 9 - Smart Pointers // w9.cpp #include #include #include "Element.h" #include "List.h" const int FWC = 5; const int FWD = 12; const int FWP = 8; w9::List merge(const w9::List& desc,cons原创 2015-11-26 14:23:00 · 285 阅读 · 0 评论 -
Conclusion for Inheritance and Object Oriented Design
条款32: 1.公有继承是一种is-a关系 2.任何函数如果期望获得一个类型为基类(pointer-to基类或reference-to基类)的实参,都也愿意接受一个继承类对象。这点只对public继承成立。 3.如果解决public继承中“不是所有的鸟都会飞”问题? 4.某些可施行于矩阵身上的事情却不可以施行于正方形身上(故不可以public继承) 条款33: 1.内层作用域的原创 2015-12-06 13:19:11 · 606 阅读 · 0 评论 -
Conclusion for Implementations
条款26: 1.尽可能避免变量被定义但是没有被使用。 std::string encryptPassword(const std::string& password){ using namespace std; string encrypted; //如果抛出异常,则可能没被使用,但是付出构造和析构成本 if (password.length() < MinimumPassword原创 2015-12-07 10:39:24 · 374 阅读 · 0 评论 -
Conclusion for Constructors,Destructors,and Assignment Operators
条款05: 1.编译器默认生成的函数有哪些? 如果写下一个空类,经过C++处理过后,就不是一个空类了。 class Empty(){};编译器生成的类如下: class Empty{ public: Empty(){...} Empty(const Empty& rhs){...} ~Empty(){...} Empty& operator=(const Empty& rhs){.原创 2015-12-08 21:40:17 · 361 阅读 · 0 评论