Qt 从QNetworkReply获取自定义QNetworkRequest对象

Qt 从QNetworkReply获取自定义QNetworkRequest对象,qt,inheritance,qnetworkrequest,qnetworkreply,Qt,Inheritance,Qnetworkrequest,Qnetworkreply,以下是我得到的代码: UserInfoRequest request(token); QNetworkReply* reply = network->sendCustomRequest(request, request.getVerb()); 其中UserInfoRequest派生自另一个类: class APIRequest : public QNetworkRequest 因此,问题是:我能否以某种方式将QNetworkRequest对象(该对象由QNetworkReply::re

以下是我得到的代码:

UserInfoRequest request(token);
QNetworkReply* reply = network->sendCustomRequest(request, request.getVerb());
其中UserInfoRequest派生自另一个类:

class APIRequest : public QNetworkRequest
因此,问题是:我能否以某种方式将
QNetworkRequest
对象(该对象由
QNetworkReply::request()
返回)强制转换到我的
APIRequest
类中?如果不可能,那么传递自定义请求对象的最佳方式是什么
前面列出的用于回复处理程序槽的代码。

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

如果您确实想这样做,您应该有一个赋值运算符,如:

class APIRequest : public QNetworkReply 
{
    APIRequest& operator= (const QNetworkReply& reply) 
    { 
       ... 
    }
}
在其中,您复制
QNetworkReply
的成员,并以某种方式处理派生类型
apirest
中的额外信息。然后您可以直接将
QNetworkReply::request()
分配给
apirest
的对象