Re: Перегрузка операций (дубль два с исходниками)
От: Андрей Тарасевич Беларусь  
Дата: 25.01.02 08:00
Оценка:
Здравствуйте Гарин Георгий, Вы писали:


ГГ>class polynom : public complex

ГГ>{
ГГ>public:

ГГ> complex* p;

ГГ>
ГГ> polynom(int);
ГГ> virtual ~polynom();
ГГ> polynom polynom::operator=(polynom&);
ГГ> polynom polynom::operator+(polynom);
ГГ> int deg;
ГГ>};

"Лишние" вызовы конструкторов и деструкторов возникают в частности из за того, что ты передаешь объекты в оператор '+' по значению. Это приводит к созданиям промежуточных объектов-копий. Это совершенно не нужно. Предевать следует константные ссылки:

polynom polynom::operator=(const polynom&);
polynom polynom::operator+(const polynom&);
Best regards,
Андрей Тарасевич
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.