我想找一些讲 OOP程序在内存中的状况的文章。
主要是讲,对象,句柄这些东西,在内存中是什么样的数据结构,等等。
不知道那里有,在CSDN文档中心找了半天,也没有找到。

解决方案 »

  1.   

    CSDN 以前有一些比较基础的文章,你可以搜索一下,估计很难找到专门讲述关于该主题的资料
      

  2.   

    参考几篇文章:
    http://blog.csdn.net/jiangsheng/archive/2005/01/24/265488.aspx
    http://dev.csdn.net/article/56/56202.shtm总的来说对象空间的大致组成实际上为:每个对象独立的部分:
      虚函数表 + 成员变量 (可以看成一个结构体)
    每个对象公有的部分:
      成员函数实际上你可以考虑成第一个参数为结构体指针(对象的this指针)的普通函数
      静态成员
      

  3.   

    也就是说,实际上 C++ 编译的思想可以用 C 语言来实现,只不过在语法上完成,而不需要在编码上完成,举例说明:
    C++语法:class A
    {
    public:
      A () { x = 0; }
      virtual add(int a, int b) { return a + b; }
      void inc() { x ++; }
    public:
      int x;
    }void main() { A a; a.add(1, 2); a.inc(); }基本上可以用如下 C 语法表示:struct A;
    typedef int (*AddFunc)(struct A *pObj, int a, int b);struct A
    {
      AddFunc pAdd;
      int x;
    };int Add(struct A *pObj, int a, int b) { return a + b; }
    int Iub(struct A *pObj) { pObj->x ++; }void main()
    {
      struct A a;
      a.x = 0;
      a.pAdd = Add;
      a.pAdd(1,2);
      a.Inc(&a);
    }
      

  4.   

    Hi Guys 
    前几天,就是在 csdn中看到一片文章,是专门讲,oop的一些概念在实现的时候在内存中的状态的,
    由于当时是在处理另一个问题,所以就没有仔细看,现在再找,就找不到了,
    那位弟兄,看到过?