thank you,
QSharedPointer will delete the pointer it is holding when it goes out of scope, provided no other QSharedPointer objects are referencing it.
what does "out of scope" means here?
outside of { ... } it's curly brace?
{
QSharedPointer<QTcpSocket> socketHolder(socket);
} // socket will auto deleted here?
{
QTcpSocket *socket = new QTcpSocket();
QSharedPointer<QTcpSocket> socketHolder(socket);
} // socket will auto deleted here?
To copy to clipboard, switch view to plain text mode
i still confuse with your example (put inside parameter)
sorry for my slow brain... need to break down
{
QSharedPointer<QTcpSocket> socketHolder(socket);
list << socketHolder;
} // **
{
QTcpSocket *socket = new QTcpSocket();
QSharedPointer<QTcpSocket> socketHolder(socket);
list << socketHolder;
} // **
To copy to clipboard, switch view to plain text mode
** socketHolder already out side of scope, does it delete socket?
so does it means QSharedPointer that get copied inside list point to invalid address?
or
(since it named 'Shared')
it will not delete the object if there other QSharedPointer still holding the same object.
that's means only the last QSharedPointer will responsible for deleting?
Bookmarks