Разница инициализации объектов С++
не могли бы объяснить разницу в инициализации объектов, например:
- MyClass var(val1, val2);
- MyClass *var = new MyClass(val1, val2);
Я правильно понимаю, что в первом случае идете выделение памяти из стека, а во-втором из кучи? Какие еще различия того или иного объявления? Заранее спасибо
Ответы (1 шт):
Автор решения: user7860670
→ Ссылка
Нет, вы понимаете неправильно. В первом случае создается объект со статическим (если объявление не в функции) либо с автоматическим временем хранения. Во втором случае создается два объекта: указатель опять со статическим (если объявление не в функции) либо с автоматическим временем хранения и еще один объект с динамическим временем хранения.