读书笔记:Effective C++ 2.0 版,条款43(多继承)、条款44(概念明确)、条款45-50(杂项)

条款43: 明智地使用多继承
并没有禁止,从概念上讲,多继承可能更符合真实世界。

条款44: 说你想说的;理解你所说的
概念明确

条款45: 弄清C++在幕后为你所写、所调用的函数
隐性成本,看下编译后的c、asm源码。

条款46: 宁可编译和链接时出错,也不要运行时出错
编译期静态检查。
运行期也应该多一点检查。

条款47: 确保非局部静态对象在使用前被初始化
无法控制不同被编译单元中非局部静态对象的初始化顺序。
单一模式 Singleton pattern:首先,把每个非局部静态对象转移到函数中,声明它为static。其次,让函数返回这个对象的引用。
函数中的静态对象(即,“局部” 静态对象)什么时候被初始化,C++却明确指出:它们在函数调用过程中初次碰到对象的定义时被初始化。
如果这个模拟非局部静态对象的函数从没有被调用,也就永远不会带来对象构造和销毁的开销。
如果编译器支持,可以将此类函数设置为inline,直接返回局部static对象。

条款48: 重视编译器警告
一般建议全开编译告警,并全部消除。

条款49: 熟悉标准库
看std源码。其它经典库也应该看看。

条款50: 提高对C++的认识
两本书待看:
The Design and Evolution of C++ --Stroustrup (Addison-Wesley, 1994)
The Annotated C++ Reference Manual (Addison-Wesley, 1990),作者是Margaret Ellis和Bjarne Stroustrup。

你可能感兴趣的:(cpp,c++)