Как работает следующий код?

102
23 февраля 2022, 17:10

Пример 1:

class A;class B;class C;
void A::showcase()
{
    C *ptr = new C(*this);
    B.input(ptr);
}

Пример 2:

class A;class C;class B;
void A::showcase()
{
    B.input(new C(*this)); 
}

Удаляется ли указатель в первом примере?

Answer 1

Локальная переменная-указатель - удаляется при выходе из методa. Объект на который она указывает - не удаляется.

Answer 2

Локальные переменные имеют автоматическое хранение и не удаляются в принципе. Удалятся могут только переменные с динамическим хранением (то бишь созданные вызовом new) и только при вызове соответствующего delete. Так что если input не использует delete, то ни в первом, ни во втором случае ничего не удаляется.

READ ALSO
Service - убийство окна останавливает service

Service - убийство окна останавливает service

Пытаюсь создать службу-плеер "играть случайные аудио-файлы пользователя друг за другом"В целом весь код работает идеально (все проигрывается...

101
Страничные запросы в JPA

Страничные запросы в JPA

вывожу данные из базы подобным образом:

200
Записывать звук с микрофона в фоне Java(Android)

Записывать звук с микрофона в фоне Java(Android)

Мне нужно сделать запись звука с микрофона (маленькие фрагменты ~1с) и конвертировать его в stringтакже нужно сделать это в фоне и зациклить чтобы...

112