В вашем примере это нормально, поскольку вы делаете копию int
.
Если вы получите int
в качестве ссылки, то после этой строки это будет зависаниессылка, так как совместно используемый указатель выйдет из области видимости, удалив его цель.
Является ли плохой идеей использовать shared_ptr, чтобы избежать копирования всего объекта?Как например вектор матриц / изображений.
Использование shared_ptr
позволит избежать копирования так же, как использование голого указателя позволит избежать копирования - решите, хотите ли вы избежать копирования (сначала), а затем выберитекакой тип указателя вы должны использовать.
Для вектора матриц или изображений вы можете использовать std::vector
из boost::shared_ptr
или boost::ptr_vector
, или какой-либо другой контейнер, который делает памятьуправление легко для вас.