Здравствуйте, Shmj, Вы писали:
S>Так дело вот в чем. Я с 15 декабря примерно без выходных и праздников работаю с другим языком (не прикасался к C++). Мозг работает на 30%.
Смотри какая штука. В С++ никогда нельзя выпускать из виду время жизни объектов. Нет и быть не может универсального ответа на вопрос, как правильно возвращать — по ссылке или по значению. Всё определяется решаемой задачей и семантикой того или иного класса и той или иной функции. Это же относится и к твоему классу враппера. Его можно было бы реализовать и так, и эдак, вероятно, какое-то решение оказалось бы более выгодным. Чтобы выбрать оптимальный вариант дизайна, нужно знать больше деталей, которые не видны в твоём синтетическом примере. Но вот при реализации функции fun1, программист однозначно прошёлкал этот момент. Каким бы ни был дизай класса враппера, как бы он ни возвращал результат, по ссылке или по значению, функция fun1 реализована некорректно и возвращает битую ссылку. И чтобы исправить ошибку, нужно просто сделать, чтоб fun1 возвращала по значению.
--
Справедливость выше закона. А человечность выше справедливости.