Есть класс:
class TMyObjectInt : public TObject
{
private:
int Value;
public:
__fastcall TMyObjectInt (int _Value);
__fastcall ~TMyObjectInt();
};
Есть ComboBox:
for (int i = 1; i <= 10; i++)
cbxItems->Items->AddObject(IntToStr(i), new TMyObjectInt(i));
Почему при вызове ->Clear() не вызываются деструкторы для TObject'ов? Казалось бы базовый TObject замечательно для этого подходит, даже деструктор у него виртуальным объявлен.
Я могу написать свою функцию очистки, но это потенциально приводит к ошибкам, особенно если я отдаю указатель на ComboBox за пределы своей формы.
Кстати, так же ведут себя и многие другие контролы, да и в VCL было так же.