Здравствуйте, wrongman, Вы писали:
W>Добрый день уважаемые форумчане.
И тебе добренький.
W>Почему к примеру компилятор сам не выделяет память под объект, а взваливает это на плечи конструктора?
Потому что конструктор не выделяет память под объект.
W>Какие операции перегружаются для нового обьекта автоматически.
Конструктор без параметров/копирования, оператор присваивания и оператор взятия адреса.
W>Например мы можем сравнивать два новых обьекта не перегрузив опрацию сравнения?
Можно, добавив просто функцию сравнения.
W>А присваивать один обект другому?
Да.
W>И еще один вопрос. Когда при выполнении программы происходит освобождение стека от данных относящихся к этой области действия все обьекты тоже соотвественно стираются, но перед уничтожением обьекта происходит вызов деструктора. Но как? Ведь при "отмотке" стека происходит считывание адреса возврата, и управление просто передается во "внешнюю" часть программы. Как же тогда умудряется запуститься деструктор?
Видимо компилятор проставляет вызов деструктора перед выходом из функции.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]