Структура класса:
Код: Выделить всё
class Parent
{
public:
std::shared_ptr my_chld;
};
class Child
{
...some stuff...
public:
void setParent(Parent* parent)
{
parent->my_child=this;
}
};
Код: Выделить всё
Parent* prnt1=new Parent();
Parent* prnt2=new Parent();
Child* chld=new Child();
chld->setParent(prnt1);
chld->setParent(prnt2);
delete prnt1;
РЕДАКТИРОВАТЬ:
Чтобы объяснить контекст. Я предпочитаю использовать необработанные указатели в main, потому что я пишу свою собственную библиотеку графического интерфейса, что-то вроде Qt, и в настоящее время реализую систему анимации, где одна и та же анимация (дочерний элемент) может использоваться в нескольких местах (несколько групп анимации( Родитель) или другие объекты). И, как и в других фреймворках, пользователь создает в основном все в куче с новым там, где это необходимо. И, как и в Qt/GTK, указатели становятся недействительными после уничтожения родителя, поскольку право собственности на объекты перешло к родителю.
Подробнее здесь: https://stackoverflow.com/questions/791 ... ters-aware