Qt 从QNetworkReply获取自定义QNetworkRequest对象
以下是我得到的代码:Qt 从QNetworkReply获取自定义QNetworkRequest对象,qt,inheritance,qnetworkrequest,qnetworkreply,Qt,Inheritance,Qnetworkrequest,Qnetworkreply,以下是我得到的代码: UserInfoRequest request(token); QNetworkReply* reply = network->sendCustomRequest(request, request.getVerb()); 其中UserInfoRequest派生自另一个类: class APIRequest : public QNetworkRequest 因此,问题是:我能否以某种方式将QNetworkRequest对象(该对象由QNetworkReply::re
UserInfoRequest request(token);
QNetworkReply* reply = network->sendCustomRequest(request, request.getVerb());
其中UserInfoRequest派生自另一个类:
class APIRequest : public QNetworkRequest
因此,问题是:我能否以某种方式将QNetworkRequest
对象(该对象由QNetworkReply::request()
返回)强制转换到我的APIRequest
类中?如果不可能,那么传递自定义请求对象的最佳方式是什么
前面列出的用于回复处理程序槽的代码。将基类分配给派生类不是一个好主意。这是因为
apirest
拥有属于QNetworkReply
的所有内容,但是QNetworkReply
不包含apirest
的一些额外功能。因此,当您将QNetworkReply
分配给apirest
时,将使用QNetworkReply
的赋值运算符,并且apirest
的所有额外数据保持不变
如果您确实想这样做,您应该有一个赋值运算符,如:
class APIRequest : public QNetworkReply
{
APIRequest& operator= (const QNetworkReply& reply)
{
...
}
}
在其中,您复制QNetworkReply
的成员,并以某种方式处理派生类型apirest
中的额外信息。然后您可以直接将QNetworkReply::request()
分配给apirest
的对象