随笔分类 -  effective C++读书笔记

条款4:确定对象使用前被初始化
摘要:包括内置类型,对象。 但问题是不同编译单元之间的初始化。 指全局对象,如static等。 不可能确定其初始化顺序。 可以用单例,如在函数里返回函数static成员的引用。 只在第一次调用时初始化。 注意:多线程调用,最好在启动时一起初始化。调用时内部加锁,这是一种方案。 总结:手工初始内置类型。构造 阅读全文

posted @ 2017-12-08 17:10 willaty 阅读(165) 评论(0) 推荐(0)

条款3:尽可能地使用const
摘要:原因: 1. 利于编译器优化,比如QT中的隐式数据共享,也利于编译器检查约束。 2. 避免if a*b = c等意外行为。 阅读全文

posted @ 2017-12-08 17:10 willaty 阅读(134) 评论(0) 推荐(0)

条款2:尽量以const, enum, inline替换#define
摘要:原因: 1. 追踪困难,由于在编译期已经替换,在记号表中没有。 2. 由于编译期多处替换,可能导致目标代码体积稍大。 3. define没有作用域,如在类中定义一个常量不行。 做法: 可以用const发挥常量的作用。 enum也可:取enum定义的变量地址不合法,取宏也是;而取const变量则合法。 阅读全文

posted @ 2017-12-08 17:06 willaty 阅读(182) 评论(0) 推荐(0)

条款1:视C++为一个语言联邦
摘要:C++是门多范式语言,至少包括面向过程,面向对象,泛型,函数式,元变成等。 但谨记,不要随意混合使用各种特性,为自己制定使用原则,针对不同项目、业务。 如: 类C风格编程:没有模板,没有异常,没有重载等。 面向对象:封装,继承,多态等。 模板编程:一般用于底层库的编写,大量使用模板。 STL:有自己 阅读全文

posted @ 2017-12-08 17:05 willaty 阅读(170) 评论(0) 推荐(0)

导航