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