Effective C++ 35
记录学习的点点滴滴
weixin_37408859
这个作者很懒,什么都没留下…
展开
-
MoreEffectiveC++Item35(基础议题)(条款1-4)
条款1:区别指针和引用 条款2:最好使用C++转换操作符 条款3: 绝对不要以多态的方式处理数组 条款4: 避免无用的缺省构造函数 条款1:区别指针和引用 1.指针(pointer) 使用[*/->] 引用(reference) 使用[.] 2.a.引用没有null b.引用必须初始化 c.引用不可以被重新赋值 3.引用比指针的效率更高(...原创 2017-04-25 23:12:00 · 78 阅读 · 0 评论 -
MoreEffectiveC++Item35(操作符)(条款5-8)
条款5 对定制的"类型转换函数"保持警惕 条款6 区别increment/decrement操作符的前值和后置形式 条款7 千万不要重载&&,||,和,操作符 条款8 了解不同意义的 new 和 delete 条款5 对定制的"类型转换函数"保持警惕 1.C++有默认类型转换,如 int---char 2.单自变量constructors(能够...原创 2017-05-08 22:14:00 · 91 阅读 · 1 评论 -
MoreEffectiveC++Item35(异常)(条款9-15)
条款9 使用析构函数防止内存泄漏 条款10 在构造函数中防止内存泄漏 条款11 禁止异常信息传递到析构函数外 条款12 理解"抛出一个异常''与"传递一个参数"或调用一个函数的差别 条款13 以by reference的方式捕获异常 条款14 明智的运用 exception specifications 条款15 了解异常处理的成本 条款9 使用析构函数防止...原创 2017-05-16 00:34:00 · 91 阅读 · 0 评论 -
MoreEffectiveC++Item35(效率)(条款16-24)
条款16 谨记80-20法则 条款17 考虑使用 lazy evaluation(缓释评估) 条款18 分期摊还预期的计算成本 条款19 了解临时对象的来源 条款20 协助完成"返回值的优化"("RVO" return value optimization) 条款21 利用重载技术(overload)避免隐式类型转换(implicit type conversion) ...原创 2017-05-22 23:13:00 · 103 阅读 · 0 评论 -
MoreEffectiveC++Item35 条款25 将constructor和non-member functions虚化
1.virtual constructor 在语法上是不可将构造函数声明成虚函数,虚函数用于实现"因类型而异的行为",也就是根据指针或引用所绑定对象的动态类型而调用不同实体.现在所涉及的 virtual-constructor实际上是"仿virtual-constructor. 假设你设计一个软件,用来处理新闻事件,它由文字和图形构成 class NLComponent { ...原创 2017-06-04 23:33:00 · 95 阅读 · 0 评论 -
MoreEffectiveC++Item35 条款26: 限制某个class所能产生的对象个数
一 允许零个或一个对象 我们知道每当即将产生一个对象,我们有一个constructor被调用,那么我们现在想组织某个对象的产生,最简单的方法就是将其构造函数声明成private(这样做同事防止了这个类被继承) class PrintJob; class Printer { public: void submitJob(const PrintJob& job)...原创 2017-06-07 00:22:00 · 76 阅读 · 0 评论 -
MoreEffectiveC++Item35 条款27: 要求或禁止对象产生于heap中
一 要求对象产生在heap中 阻止对象产生产生在non-heap中最简单的方法是将其构造或析构函数声明在private下,用一个public的函数去调用起构造和析构函数 class UPNumber { public: UPNumber(); UPNumber(int initValue); UPNumber(double initValue); ...原创 2017-06-13 00:10:00 · 103 阅读 · 0 评论