从QNetworkReply获取自定义QNetworkRequest对象



这是我得到的代码:

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的对象。

相关内容

  • 没有找到相关文章

最新更新