Здравствуйте Аноним, Вы писали:
А>Здравствуйте Гарин Георгий, Вы писали:
ГГ>> Здравствуйте. I need help. ГГ>> Перегрузил операции присваивания и умножения для класса многочленов.
А>Скорее всего вы используете конструкцию типа C = A * B и соответственно результат A * B помещается сначала в некую временную переменную, которая затем присваивается в C, и после присваивания для нее (врем. пер.) вызывается деструктор. А>Т.е. фактически получается:
А>MyClass *TMP = new MyClass(operator*(A, B)); // или A.operator*(B) (это не важно) А>C.operator=(*TMP); А>delete TMP;
Да, видимо так оно и происходит. Но вызывается несколько деструкторов для А,В,что-то еще (наверное эта временная переменная) и С. Вот поэтому-то я и просил кусок кода, чтобы посмотреть как это делается by example.
ps: А это не может происходить из-за передачи параметров. Т.е. в справочнике написано, что надо передавать параметры по ссылке, может я в этом напутал...