Здравствуйте Андрей Тарасевич, Вы писали:
АТ>>"Лишние" вызовы конструкторов и деструкторов возникают в частности из за того, что ты передаешь объекты в оператор '+' по значению. Это приводит к созданиям промежуточных объектов-копий. Это совершенно не нужно. Предевать следует константные ссылки:
АТ>>polynom polynom::operator=(const polynom&); АТ>>polynom polynom::operator+(const polynom&);
АТ>Еще одно уточнение: оператор '+' не модифицирует своего левого операнда, поэтому соответствующий метод следует объявить как константный:
АТ>polynom polynom::operator=(const polynom&); АТ>polynom polynom::operator+(const polynom&) const;
И не создавать временный объект, что-ли, т.е. писать this->.... = this-> ... + что-то
return*this
Так?
А как быть со вторым вопросом?
polynom a(2),b(2),*c
c=a*b — это можно сделать и как?