Как я могу взять результат вызова метода как объект-значение и поместить его на кучу?
Например:
Метод Qt QImage::scaledToWidth
возвращает копию объекта QImage
.
Сейчас я делаю так:
QImage *new_img_on_heap = new QImage(old_imgage_on_heap->scaledToWidth(2000));
Это единственный способ? Кажется, что мне придется заниматься созданием 3-го совершенно нового объекта, когда у меня уже есть отличный объект в стеке.
Причина, по которой я хочу поместить его на кучу, в том, что реальный QImage
большой, и я хочу, чтобы он пережил время жизни текущего метода. Я собирался поместить указатель на него в поле моего класса.
Я знаю, что QImage
имеет что-то вроде неявного разделения данных, но я не совсем понимаю, как это работает под капотом. Кроме того, я хотел бы знать общее решение на случай, если мне когда-нибудь понадобится использовать объекты, не так хорошо спроектированные, как в Qt.