Здравствуйте, wayfaring, Вы писали:
W>Подскажите почему не работает следующий код: W>Вывод следующий:
Код работает. Ты, наверное, имел в виду: «Почему фактический результат выполнения не совпадает с ожидаемым?» Тогда ты должен дополнитльно сформулировать, каков для тебя ожидаемый результат. (Это касается не только этого вопроса, а в принципе любого вопроса или багрепорта.)
Здравствуйте, Qbit86, Вы писали:
Q>Код работает. Ты, наверное, имел в виду: «Почему фактический результат выполнения не совпадает с ожидаемым?» Тогда ты должен дополнитльно сформулировать, каков для тебя ожидаемый результат. (Это касается не только этого вопроса, а в принципе любого вопроса или багрепорта.)
Да, извините за не совсем корректно сформулированный вопрос.
Я понимаю почему не освобождаются ресурсы, но вот каким образом правильно связать два класса A и B?
Здравствуйте, ArtDenis, Вы писали:
AD>... W>>A use count: 1 W>>B use count: 1
AD>Так всё правильно же. use count = 1, т.к. ссылка на объект осталась в умном указателе в поле класса.
Да, все правильно, но как сделать, чтобы освобождались ресурсы при выходе?
Здравствуйте, wayfaring, Вы писали: W>Да, все правильно, но как сделать, чтобы освобождались ресурсы при выходе?
weak_ptr тебе в руки (в полях класса вместо shared_ptr). Он как раз сделан для того, чтобы не создавать циклические ссылки, которые у тебя в данном коде получились.