zoukankan      html  css  js  c++  java
  • Inside the c++ object module 阅读摘要

    这本书是 Stanley B. Lippman于1996年所写,而最早的c++标准是 ISO/IEC 14882:1998[18],即C++98。

    Chapter 1: Object Lessons

    1.1 类定义:包含普通函数,虚拟函数,静态函数;静态域和非静态域

       

    a simple object module : 这个模型中,一个对象就是一个slot的序列,一个slot代表一个成员,排列顺序与声明顺序相同。所有成员都通过指针访问, 这引入了指针--成员的概念。

    a table-driven object module:  通过一个数据成员表直接保存数据,一个成员函数表保存所有成员函数的引用。

    c++ object module : 非静态数据成员直接在对象中分配,静态数据成员在对象外独立分配,静态和非静态函数也在对象外。对于虚拟函数,对象中保存了一个vptr指向一个虚拟函数表,表中保存了虚拟函数的指针和type_info(用于runtime type identification)。 主要的缺点是:由于非静态数据成员直接分配在对象中,即使使用该对象的源码没有改变,也需要重新编译。

    增加继承:直接包含一个指向基类的指针,或者放弃所有的间接性,直接在对象中保存基类的数据成员。虚拟基类的实现时,要么在对象中增加一个指针,要么增加一个虚拟基类表或者扩展已有的虚拟表,Section 3.4 具体讨论。

    1.2 A Keyword Distinction

  • 相关阅读:
    UML学习笔记<1>
    安装和配置jBPM4,并举个hello.w
    Myeclipse--jBPM4.3插件
    今天讲座的感悟--java
    程序员必看的书
    SSH的整合
    一款Timer倒计时器
    一款jq的计时器
    Code Complete-13/7/29
    java-Timer类使用方法
  • 原文地址:https://www.cnblogs.com/ridox/p/3459280.html
Copyright © 2011-2022 走看看