Re: Как работают конструктор и деструктор по умолчанию?
От: Vain Россия google.ru
Дата: 26.03.11 14:47
Оценка: -1
Здравствуйте, wrongman, Вы писали:

W>Добрый день уважаемые форумчане.

И тебе добренький.

W>Почему к примеру компилятор сам не выделяет память под объект, а взваливает это на плечи конструктора?

Потому что конструктор не выделяет память под объект.

W>Какие операции перегружаются для нового обьекта автоматически.

Конструктор без параметров/копирования, оператор присваивания и оператор взятия адреса.

W>Например мы можем сравнивать два новых обьекта не перегрузив опрацию сравнения?

Можно, добавив просто функцию сравнения.

W>А присваивать один обект другому?

Да.

W>И еще один вопрос. Когда при выполнении программы происходит освобождение стека от данных относящихся к этой области действия все обьекты тоже соотвественно стираются, но перед уничтожением обьекта происходит вызов деструктора. Но как? Ведь при "отмотке" стека происходит считывание адреса возврата, и управление просто передается во "внешнюю" часть программы. Как же тогда умудряется запуститься деструктор?

Видимо компилятор проставляет вызов деструктора перед выходом из функции.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.