Здравствуйте, dead0k, Вы писали:
D>D>BoxOfTNT * box = new BoxOfTNT();
D>TNT & stick (box_of_TNT->choose_one_stick_of_TNT());
D>delete box;
D>stick.prepare_to_use(); // <- BOOM
D>
D>Оно, конечно, сам-себе буратино, но факт остается фактом — возвращать по значению — безопасней.
D>ps/
Провал тут случился в тот момент, когда ты решил хранить ссылку, а не копию, в коде, который что-то рушит. Никто не заставлял тебя хранить ссылку, а не копию...

Когда из метода доступа возвращают ссылку, а не копию, то решение о том, что хранить отдают наружу просто.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском