2012-02-20 21 views
1

我还是有点困惑.. 几天前,我问了一个问题,如果派生类实例引用它的基类..我得到的答案是“不,它不,派生类只是继承并包含所有基地成员...... 如果是这样,那么如何在派生类对象保存在内存中??派生类对象如何在内存中看起来像?

并派生类对象的地址提供任何信息。关于它的基类?

+1

我想[C# - CLR如何在继承过程中组织内存/引用?] [1]回答你的问题。 [1]:http://stackoverflow.com/questions/1385990/c-sharp-how-does-clr-organize-memory-reference-during-the-inheritance – Terkel 2012-02-20 11:10:14

回答

4

这里是article,它显示了对象存储器的表示形式,基本字段和派生类存储在一起,并将方法放入方法表结构

2

实际上(实际)放置的是一个'实现细节'。框架(CLR)可能会详细说明这一点,该语言根本就没有这样做。

但你能想象它看起来像[[base class members][derived class members]]

并以实例的引用将只指向基类的起始地址。

它是确定哪个部件“可见”的参考(基础或派生)的类型。

相关问题