More Effective C++之24

原创 2006年06月19日 20:41:00
条款24:了解virtual functions、multiple inheritance、virtual base classes、runtime type identification的成本
Vtbl是virtual tables、vptrs是virtual table pointers。这在《Inside C++ Object Model》里面有很详尽的描述,所以不需要这里多写什么。《Inside C++ Object Model》有相关性能测试报告,可以作为参考。当我们将虚函数声明成inline的时候,往往不要抱有幻想,编译器往往会忽略,因为如果这一设定生效,如果所有虚函数都是inline,那如何生成vtbl?而且inline是编译期行为,virtual是执行期行为。所以要不inline,要不virtual。
多重继承其实并不是好的抽象办法,我最痛恨的一个特性。建议除非天塌下来,否则不要用。这样也可以同时回避virtual base classes。runtime type identification并不是常用的特性,相对而言,这可以忽略,只要VC6默认就是不支持的。
总结起来说,virtual functions、multiple inheritance、virtual base classes、runtime type identification都是需要代价的,我的观点是除非必要,否则不用。

24小时react/react-native/flux/redux快速入门

react/react-native经过几年时间的锤炼,时至今日,无疑是目前前端开发最火的框架之一,搞定react/react-native,web端,移动端通吃,再加一个nodejs即成为现在最吃香的全栈工程师。
  • 2017年04月20日 10:30

More Effective C++ 条款4

 条款4:避免无用的缺省构造函数缺省构造函数(指没有参数的构造函数)在C++语言中是一种让你无中生有的方法。构造函数能初始化对象,而缺省构造函数则可以不利用任何在建立对象时的外部数据就能初始化对象。有...
  • zhc
  • zhc
  • 2001-09-24 22:46:00
  • 707

《Effective C++》和《More Effective C++》汇总

More Effective C++读书笔记 条款1:指针与引用的区别 二者之间的区别是:在任何情况下都不能用指向空值的引用,而指针则可以;指针可以被重新赋值以指向另一个不同的对象,但...
  • zhu2695
  • zhu2695
  • 2013-06-22 20:29:04
  • 2105

Effective C++ && More Effective C++(完整版)

  • 2010年05月04日 21:04
  • 2.71MB
  • 下载

C++effective 和C++more effective

  • 2016年02月24日 16:18
  • 17.73MB
  • 下载

More Effective C++.pdf 高清 目录

  • 2014年02月11日 09:47
  • 2.48MB
  • 下载

《More Effective C++》读书笔记-技术

25、将构造函数和非成员函数虚化1、这里所谓的虚拟构造函数,并不是真的指在构造函数前面加上 virtual 修饰符,而是指能够根据传入不同的参数建立不同继承关系类型的对象。class NLCompon...
  • will130
  • will130
  • 2016-05-02 12:27:49
  • 2843

《More Effective C++》阅读记录

《More Effective C++》阅读记录   在读完《C专家编程》之后收获良多就选择了继续读一些相关的书籍,本打算先看《算法导论》的,但是《算法导论》但是算法导论的篇幅实在太多,无意中在图...
  • GrayOnDream
  • GrayOnDream
  • 2016-08-09 10:33:06
  • 339

More Effective C++ 简体中文版(pdf 版)

  • 2011年01月17日 22:08
  • 2.42MB
  • 下载

Effective C++ 和 More Effective C++(全)

  • 2011年09月01日 14:15
  • 669KB
  • 下载
收藏助手
不良信息举报
您举报文章:More Effective C++之24
举报原因:
原因补充:

(最多只允许输入30个字)