Здравствуйте, menify, Вы писали:
M>Здравствуйте, ssm, Вы писали:
M>
ssm>>истина лежит в использовании, к примеру, std::auto_ptr
M>Я плохо знаю C++, что такое std::auto_ptr?
M>Как это будет выглядеть, хотя бы примерно?
это класс, который всасывает указателдь на что-нибудь (созданный при помощи new), а в деструкторе он его удаляет при помощи delete:
struct A
{
int i;
double j;
};
void f()
{
std::auto_ptr<A> ap(new A); // создали
ap->i = 7; // работаем, как с обычным указателем
ap->j = 3.14;
} // а здесь объект ap выходит из области видимости и удаляется,
// что приводит к вызову деструктора, а в нем вызовется delete.
// то же самое произойдет при return или возбуждении исключения.
а то, что delete не делает ничего, если ему подсунуть нулевой указатель, то вообще можно быть спокойным и не бояться, что при такой автоматической очистке произойдет что-то не то.