我们必须删除QUpdSockets吗?

时间:2012-04-17 09:18:34

标签: c++ qt

我正在编写一个使用QUdpSockets的应用程序。 由于我使用new new创建套接字导致内存问题,我想知道在关闭它之后删除它们是否必要。

以下代码:

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?

将会感谢帮助。

3 个答案:

答案 0 :(得分:1)

取决于this是什么。每当它被破坏时,QUdpSocket也会被破坏。

答案 1 :(得分:1)

一旦您不再需要插座,您可以致电:

socket->deleteLater();

是的,当你不再需要它时,最好摧毁它。

另一个解决方案是删除'this',因此套接字也将被删除。

答案 2 :(得分:0)

如果你完成了套接字,你应该删除它。这样你就安全了。它也没有伤害。但是,正如已经指出的那样,“这个”将用于销毁套接字(参见http://doc.qt.io/qt-4.8/qobject.html#QObject)。