Добрый день!
Есть у меня структура с разными полями, есть там так же поле AnsiString. У структуры нет деструктора.
При удалении структуры надо ли делать delete для поля AnsiString или оно корректно удалится при удалении всей структуры?
Нужно ли удалять AnsiString в структуре?
Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain
-
- Сообщения: 1213
- Зарегистрирован: 26 фев 2004, 13:24
- Откуда: Pietari, Venäjä
- Контактная информация:
Слабо тест написать? К тому же, в ВСВ наверняка есть детектор memory leaks.
Выдает что destructor called. Хотя и нафига иметь AnsiString в структуре - либо пишем на С либо на С++.
Код: Выделить всё
#include <iostream>
#include <memory>
struct Bar {
Bar(int i, int j)
:_i(i)
,_j(j)
{}
~Bar()
{
std::cout<<"Destrictor called\n";
}
private:
const int _i;
const int _j;
};
struct Foo {
std::auto_ptr<Bar> _bar_ptr;
};
int main(int argc, char** argv) {
Foo foo;
foo._bar_ptr.reset(new Bar(13, 666));
return 0;
}
2B OR NOT(2B) = FF