2012-02-20 10 views
1

私はまだ少し混乱しています。 派生したクラスインスタンスが基本クラスを参照する場合、数日前に質問しました。私は「いいえ、そうではありません。派生クラスは継承し、メモリ内のベース... のメンバー、これがそうであるならば、どのように派生クラスのオブジェクトが保存されている??派生クラスオブジェクトはどのようにメモリ内に見えますか?

は、派生クラスのオブジェクトのアドレスは、すべての情報を与えるん。その基底クラスについてはどうですか?

+1

私は[C# - どのようにCLRが継承の間にメモリ/参照を整理するのですか?] [1]があなたの質問に答えたと思います。 [1]:http://stackoverflow.com/questions/1385990/c-sharp-how-does-clr-organize-memory-reference-during-the-inheritance – Terkel

答えて

4

ここオブジェクトメモリの表現を示すarticleであり、ベースクラスと派生クラスのフィールドがまとめて格納され、メソッドテーブル構造にメソッドが入れられる

2

実際に(物理的に)どのようにレイアウトされているかは「実装の詳細」です。フレームワーク(CLR)はこれをある程度詳細に指定するかもしれませんが、言語はまったくそうしません。

しかし、あなたはそれが[[base class members][derived class members]]

のように見え、インスタンスへの参照は、基本クラスの先頭アドレスを指し示すだけで想像することができます。

これは、どの部分が「可視」であるかを決定する基準(基本または派生)のタイプです。

関連する問題