C++ : об управлении памятью

Я немного новичок в C++ и до сих пор занимался программированием на Obj-C и Java.

Скажем, у меня есть класс:

class Person {

private:
   Wife *current_wife;
   //.....
};

Так вот, мне нужно реализовать метод setter для изменения переменной экземпляра Wife.

Вот так:

Person::SetCurrentWife (Wife *new_wife) {

    current_wife = new_wife;
}

Это будет мелкая копия.

Итак, где-то из главного цикла или чего-то подобного я вызываю:

Person *some_person = new Person();
...
Wife *wife = new Wife ();
some_person->SetCurrentWife(wife);

Так что я в замешательстве: будет ли здесь утечка памяти? Должен ли я удалить объект жены здесь или в деструкторе Person? В Obj-C я бы освободил текущую жену, а затем послал бы сообщение retain объекту wife выше, но как правильно делать методы сеттера в C++?

12
задан Kerrek SB 20 December 2011 в 13:28
поделиться