Object* obj = new Object();
new
всегда возвращает указатель на объект.
, если вы пишете просто Object obj
, это означает, что obj
будет содержать сам объект.Если это объявлено таким образом внутри функции, то память будет распределена по стеку и будет стерта после выхода из этой функции.new
выделяет память в куче, поэтому указатель может быть возвращен из функции.Обратите внимание, что указатель также может указывать на локальную (стековую) переменную.