0

mabby ばかげた質問です) 私はちょっとした誤解があります:

「newobj」により、CLR は次のことを行います。1) オブジェクトが必要とするメモリの量を計算します。

2) ヒープに十分なメモリがある場合 - コンストラクタを呼び出し、メモリ内の新しいオブジェクトからメイン コードへのリンクを取得します (アドレスは、次のオブジェクトへのポインタの最後の位置です)。

3) 前に!参照が取得される 次のオブジェクトへのポインタの移動

次に例を示します。 Car myCar = new Car;

それで、私が理解すれば、コンパイラは「次のオブジェクトへのリンク」をmyCarに書き込みますか?? 「オブジェクトへのリンク」を私の車に書き込むためにコンパイラが必要な場合..

可能であれば、実際にどのように機能するかを説明してください

4

1 に答える 1

2
Car myCar = new Car;

Car最も深いものから始まるすべての親型の呼び出しチェーンを使用して、型のコンストラクターを呼び出しました。

スペースが割り当てられ、そのメモリ位置へのポインタが取得され、そのメモリのアドレスが に割り当てられmyCarます。

基本的な手順

于 2012-09-18T21:26:01.707 に答える