1.
i |= (i+1)
-
Конструктор по умолчанию, конструктор копирования, оператор присваивания и деструктор.
-
Не определен конструктор копирования. Т.к. при передаче объекта в функцию создается его копия, то появятся два объекта, у которых
ptr
ссылается на одну область памяти. По выходе из функции для созданной копии вызывается деструктор, который удалит общую область памяти. В результате, в последней строке программы будет выведен "мусор". -
Оператор присваивания ничего не возвращает, поэтому при двойном присваивании происходит ошибка компиляции (
no known conversion for argument 1 from 'void' to 'const CAssignableClass&'
). Вариант исправления -- возвращать в операторе присваивания ссылкуCAssignableClass&
CAssignableClass& operator=(const CAssignableClass &ob)
{
this->x = ob.x;
return *this;
}
Комментарии
comments powered by Disqus