2012-04-17 100 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',因此套接字也将被删除。