В чём различия данных строк? Обе работают. Когда тот или другой случай используется?
Class* obj = new Class();
Class obj;
Ответ
В первом случае Вы создаёте объект в куче. Сами выделяете память, сами должны её удалять оператором delete. Обращение к полям и методам объекта происходит через стрелку ->
Во втором случае объект создаётся в стеке, он будет автоматически уделён по завершению его области видимости. Обращение к объекту происходит через точку
Первый способ позволяет определять любое время жизни объекта, использовать его в разных частях программы. Но это также чревато последствиями, так как программист может забыть удалить объект из памяти. Поэтому без необходимости объект не следует создавать в куче.
Комментариев нет:
Отправить комментарий