Нужно ли удалять AnsiString в структуре?

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Нужно ли удалять AnsiString в структуре?

Re: Нужно ли удалять AnsiString в структуре?

Absurd » 27 авг 2007, 14:04

Слабо тест написать? К тому же, в ВСВ наверняка есть детектор memory leaks.

Код: Выделить всё

#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;
}
Выдает что destructor called. Хотя и нафига иметь AnsiString в структуре - либо пишем на С либо на С++.

Нужно ли удалять AnsiString в структуре?

Ivan093 » 27 авг 2007, 13:43

Добрый день!

Есть у меня структура с разными полями, есть там так же поле AnsiString. У структуры нет деструктора.
При удалении структуры надо ли делать delete для поля AnsiString или оно корректно удалится при удалении всей структуры?

Вернуться к началу