Подтвердить что ты не робот

Отключить объект Qt Signals и Slots?

Мне интересно, нужно ли мне отключать синглы и слоты, если я уничтожаю объект, излучающий сигнал. Вот пример:

QAudioOutput * audioOutput = new QAudioOutput(format,mainWindow);
connect(audioOutput,SIGNAL(stateChanged(QAudio::State)),this,SLOT(stateChanged(QAudio::State)));

delete audioOutput;

audioOutput = new QAudioOutput(format,mainWindow);
connect(audioOutput,SIGNAL(stateChanged(QAudio::State)),this,SLOT(stateChanged(QAudio::State)));

Будет ли это автоматически отключать сигнал от старого аудиопотока, или это приведет к утечке памяти или другому поведению undefined?

Спасибо заранее.

4b9b3361

Ответ 1

Сигналы автоматически отключаются при вызове деструктора QObject. Взгляните на документацию Qt: QObject Destructor

Ответ 2

Вам не нужно вручную отключать сигналы и слоты, разрушение QObject автоматически очищает их.