- 757 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 16:36:28 ]
- >>756
> 「自然に実装すれば」というのは、アセンブル段階で > 構造体やクラスのコードはすべて code セグメントに集約している > 場合、ということでしょうか。 クラス(あるいは構造体)のメンバ変数は、 インスタンス毎に値が違うので、各インスタンスごとに 用意してやる必要があるが、メンバ関数は各クラス毎に 一つだけ用意してやればよい。 よって、>>733の場合だと、スタックにメンバ関数(へのポインタ)が 用意される必要はない(virtual関数は微妙に別) > もう1つ謎なのは、インスタンス化を可能とするために、 > clear() を呼んだ際に、どのメモリ領域が this に該当するのかを > どうにかして渡しているはずですが、 >>733の例のclear()の場合、処理系が勝手に __struct_fruit_clear(fruit* this) のような関数に置き換える(ことが多い)。ただし、処理系依存。
|

|