sizeof(TFoo) == TFoo.InstanceSize なりたつ?

解決


ヤマダ  2009-04-30 13:48:34  No: 34227  IP: 192.*.*.*

いつもお世話になってます。

sizeof(TFoo) == TFoo.InstanceSizeは、なりたつでしょうか?

sizeof(TFoo)が常に4を返してくるのですが...
TFoo.InstanceSizeは、12を返します。

TFoo= class(TObject)
  private
    F0: integer;
    F1: integer;
  end;

貴重な時間をすみません。

編集 削除
くらら  2009-04-30 17:10:25  No: 34228  IP: 192.*.*.*

成り立つかどうかは、自分でいろんなクラスを調べてみたらいいんじゃない?

編集 削除
はて  2009-04-30 23:25:11  No: 34229  IP: 192.*.*.*

> sizeof(TFoo)が常に4を返してくるのですが...
> TFoo.InstanceSizeは、12を返します。
成り立たないと結論が出ているように見えますが。
なんで成り立たないのかというとTFooはクラスへの参照、いわゆるポインタでしかないからですね。
それとも成り立ってくれないと困るような事情があるんでしょうか?

編集 削除
ヤマダ  2009-05-01 02:43:50  No: 34230  IP: 192.*.*.*

ご返信ありがとうございます。

sizeOf関数のhelpのこの文を見るとどうも腑に落ちなくて
投稿してしまいました。
ありがとうございました。

>型識別子を渡すと,その型のインスタンスを表わすために使用される容量
>(バイト数)を取得できます。

編集 削除
くらら  2009-05-01 21:33:09  No: 34231  IP: 192.*.*.*

>型識別子を渡すと,その型のインスタンスを表わすために使用される容量
>(バイト数)を取得できます。

レコード型の場合は正しいサイズを返すをいうことでしょう。

編集 削除