这是我的代码:
UserInfoRequest request(token);
QNetworkReply* reply = network->sendCustomRequest(request, request.getVerb());
UserInfoRequest派生自另一个类:
class APIRequest : public QNetworkRequest
所以问题是:我能以某种方式将QNetworkRequest
返回的QNetworkReply::request()
对象转换为APIRequest
类吗?如果不可能,那么传递我的自定义请求对象的最佳方法是什么
之前列出的代码来回复处理程序槽。
答案 0 :(得分:1)
将基类分配给派生类不是一个好主意。这是因为APIRequest
包含属于QNetworkReply
的所有内容,但QNetworkReply
不包含APIRequest
的一些额外功能。因此,当您将QNetworkReply
分配给APIRequest
时,会使用QNetworkReply
的分配运算符,而APIRequest
的其他数据仍保持不变。
如果您真的想要这样做,您应该有一个赋值运算符,如:
class APIRequest : public QNetworkReply
{
APIRequest& operator= (const QNetworkReply& reply)
{
...
}
}
您在其中复制QNetworkReply
的成员,并以某种方式处理派生类型APIRequest
中的额外信息。然后,您可以直接将QNetworkReply::request()
分配给APIRequest
的对象。