【发布时间】:2017-08-04 11:51:50
【问题描述】:
关于QSharedPointer在以下场景中的使用问题:
我的班级有两个 QSharedPointers 私人班级成员:
class xy{
...
private:
QSharedPointer<QNetworkAccessManager> m_nam;
QSharedPointer<QNetworkReply> m_nr;
};
在我发送QNetworkAccessManager 的代码中,返回值为QNetworkReply 指针。
QNetworkReply * QNetworkAccessManager::post(const QNetworkRequest & request, const QByteArray & data)
我想将此指针传递给我的QSharedPointer,即m_nr。
我试过了:
m_nam.reset( new QNetworkAccessManager(m_parent.data()));
QNetworkRequest request(url);
...
...
// following line is my problem
m_nr = QSharedPointer<QNetworkReply>(m_nam->post(request, postData));
...
但是崩溃了,然后我试了一下:
m_nam.reset( new QNetworkAccessManager(m_parent.data()));
QNetworkRequest request(url);
...
...
// following line is my problem
m_nr.reset( m_nam->post(request, postData));
...
但也崩溃了。
如何将QNetworkReply 指针正确传递给我的QSharedPointer?
【问题讨论】:
-
请提供一个最小、完整和可验证的示例。 stackoverflow.com/help/mcve
-
我认为应该是足够的示例代码
标签: c++ qt smart-pointers qnetworkaccessmanager qsharedpointer