Есть хороший пример перегрузки operator+
для возврата нового экземпляра объекта в качестве результата, без динамического выделения.
Источник здесь , с множеством объяснений о том, как перегрузить операторы.
Пример таков:
// Add this instance's value to other, and return a new instance
// with the result.
const MyClass MyClass::operator+(const MyClass &other) const {
return MyClass(*this) += other;
}
Предполагается, что вы реализовали operator+=
и конструктор копирования,если у вас нет +=
- просто поместите туда операции присваивания.Прочитайте ссылку для более подробной информации.