2012-04-17 101 views
0

我正在編程使用QUdpSockets的應用程序。 由於我創建套接字與運營商新的內存問題,我想知道它是否需要關閉它後刪除它們。下面我們是否必須刪除QUpdSockets?

代碼:

socket = new QUdpSocket(this); 
socket->bind(); 
connect(socket, SIGNAL(readyRead()), this, SLOT(getResponse())); 

socket->close(); 
delete socket; //Do I have to do this to free the mem? 

幫助將感謝。

+2

你多久這樣做?您可能會更好地構造沒有父代的套接字,然後在代碼中顯式刪除它。否則,你不會刪除任何內存,直到父對象被破壞。 – Nick 2012-04-17 09:27:41

回答

1

取決於什麼this是。無論何時被破壞,QUdpSocket也會如此。

+0

謝謝。現在我意識到套接字可以像父節點一樣正確刪除。 – AZorrozua 2012-04-19 09:03:31

1

只要你不需要插座了,你可以撥打:

socket->deleteLater(); 

是的,這是更好地摧毀插座時,你不需要它了。

另一種解決方案是刪除'this',因此套接字也將被刪除。

相關問題