1

関連: Delphi、VirtualStringTree - レコードではなくクラス (オブジェクト)

メモリが増えるか何か?

PS: Delphi 2007 を使用しています。

4

1 に答える 1

2

レコードの代わりにオブジェクトを使用することには、2 つの欠点があります。まず、各オブジェクトは、同じデータを含むレコードよりも 4 バイト大きくなります。(または 8 バイト、D2009 以降。)

次に、オブジェクトを作成して破棄する必要があります。レコードのように「ただそこに」あるわけではありません。しかし、もう 1 つの質問からすると、いずれにせよポインタを介してレコードを参照する必要があるように見えるので、それは大きな違いではありません。レコードを動的に割り当てて、後で解放する必要があります。

しかし、オブジェクトを使用すると、特に継承とポリモーフィズムを使用する機能など、柔軟性が大幅に向上します。余分な 4 バイトの価値があることは間違いありません。

于 2010-04-21T00:31:46.220 に答える