Есть ли какие-то компромиссы при использовании объектов классов вместо записей в VirtualStringTree? - PullRequest
1 голос
/ 21 апреля 2010

Относительно: Delphi, VirtualStringTree - классы (объекты) вместо записей

Увеличивается ли память или как?

PS: я использую Delphi 2007.

1 Ответ

2 голосов
/ 21 апреля 2010

Есть два недостатка использования объектов вместо записей. Во-первых, каждый объект на 4 байта больше, чем запись, содержащая те же данные. (Или 8 байтов, начиная с D2009.)

Во-вторых, объект должен быть создан и уничтожен; это не "просто там", как запись. Но, судя по другому вопросу, похоже, что ваши записи в любом случае должны быть переданы через указатели, так что это не большая разница. Вам все равно придется динамически распределять свои записи и освобождать их позже.

Но если вы используете объект, вы получаете большую дополнительную гибкость, особенно возможность использовать наследование и полиморфизм. Это определенно стоит дополнительных 4 байта.

...