【问题标题】:Get custom QNetworkRequest object from QNetworkReply从 QNetworkReply 获取自定义 QNetworkRequest 对象
【发布时间】:2015-03-18 17:21:09
【问题描述】:

这是我得到的代码:

UserInfoRequest request(token);
QNetworkReply* reply = network->sendCustomRequest(request, request.getVerb());

UserInfoRequest 派生自另一个类的地方:

class APIRequest : public QNetworkRequest

所以问题是:我能否以某种方式将QNetworkReply::request() 返回的QNetworkRequest 对象转换为我的APIRequest 类?如果不可能,那么传递我的自定义请求对象的最佳方法是什么 之前列出的用于回复处理程序槽的代码。

【问题讨论】:

    标签: qt inheritance qnetworkrequest qnetworkreply


    【解决方案1】:

    将基类分配给派生类不是一个好主意。这是因为APIRequest 拥有属于QNetworkReply 的所有内容,但QNetworkReply 不包含APIRequest 的一些额外功能。因此,当您将QNetworkReply 分配给APIRequest 时,将使用QNetworkReply 的赋值运算符,而APIRequest 的所有额外数据都保持不变。

    如果你真的想这样做,你应该有一个赋值运算符,比如:

    class APIRequest : public QNetworkReply 
    {
        APIRequest& operator= (const QNetworkReply& reply) 
        { 
           ... 
        }
    }
    

    在其中复制QNetworkReply 的成员并以某种方式处理派生类型APIRequest 中的额外信息。然后可以直接将QNetworkReply::request()赋值给APIRequest的一个对象。

    【讨论】:

      猜你喜欢
      • 2012-06-08
      • 2013-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多