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

解決


ヤマダ  2009-04-30 22:48:34  No: 34227

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

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

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

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

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


くらら  2009-05-01 02:10:25  No: 34228

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


はて  2009-05-01 08:25:11  No: 34229

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


ヤマダ  2009-05-01 11:43:50  No: 34230

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

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

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


くらら  2009-05-02 06:33:09  No: 34231

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

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加