Страницы

Поиск по вопросам

четверг, 28 марта 2019 г.

C++ class в чём разница?

В чём различия данных строк? Обе работают. Когда тот или другой случай используется?
Class* obj = new Class(); Class obj;


Ответ

В первом случае Вы создаёте объект в куче. Сами выделяете память, сами должны её удалять оператором delete. Обращение к полям и методам объекта происходит через стрелку ->
Во втором случае объект создаётся в стеке, он будет автоматически уделён по завершению его области видимости. Обращение к объекту происходит через точку
Первый способ позволяет определять любое время жизни объекта, использовать его в разных частях программы. Но это также чревато последствиями, так как программист может забыть удалить объект из памяти. Поэтому без необходимости объект не следует создавать в куче.

Комментариев нет:

Отправить комментарий