Tôi tự hỏi nếu tôi cần phải ngắt kết nối singals và khe nếu tôi phá hủy các tín hiệu phát ra đối tượng. Dưới đây là ví dụ:Tín hiệu Qt và Slots đối tượng ngắt kết nối?
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)));
Điều này có thể tự động ngắt kết nối tín hiệu khỏi âm thanh cũ hoặc sẽ dẫn đến rò rỉ mem hoặc một số hành vi không xác định khác không?
Cảm ơn bạn trước.
Mặc dù 'QObject' s dọn dẹp an toàn các kết nối khi chúng bị hủy. Tôi khuyên bạn nên xóa một 'QObject' đã có tập hợp cha mẹ như bạn đã nói ở trên vì điều này sẽ ngắn mạch các cơ chế tự động đã có sẵn cho 'QObject' s. Nó cũng thường an toàn hơn khi sử dụng 'deleteLater()' thay vì xóa trực tiếp 'QObject'. –