1

这是我得到的代码:

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

其中 UserInfoRequest 派生自另一个类:

class APIRequest : public QNetworkRequest

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

4

1 回答 1

1

将基类分配给派生类并不是一个好主意。那是因为APIRequest拥有所有属于QNetworkReplyQNetworkReply不包含APIRequest. 因此,当您分配QNetworkReply给时APIRequest,将使用 的赋值运算符,QNetworkReply并且所有额外的数据都APIRequest保持不变。

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

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

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

于 2015-03-19T06:45:58.183 回答