错误:没有用于调用“QNetworkAccessManager::QNetworkAccessManager(Networking* const)”的匹配函数

Posted

技术标签:

【中文标题】错误:没有用于调用“QNetworkAccessManager::QNetworkAccessManager(Networking* const)”的匹配函数【英文标题】:error: no matching function for call to 'QNetworkAccessManager::QNetworkAccessManager(Networking* const)' 【发布时间】:2014-09-10 12:10:06 【问题描述】:

这是我的文件。我有一些问题。

   // networking.h

#ifndef NETWORKING_H
#define NETWORKING_H

#include <QNetworkReply>

class Networking

public:
    Networking();
    void getNetReply();
    void replyFinished(QNetworkReply*);
;

#endif // NETWORKING_H




//networking.cpp
#include "networking.h"
#include <QtNetwork/QNetworkAccessManager>
#include <QUrl>
#include <QNetworkRequest>
#include <QObject>

Networking::Networking()



void Networking::getNetReply()
    QNetworkAccessManager * man;
    man = new QNetworkAccessManager(this);
    qDebug() << "Getting content..." << endl;

    QNetworkRequest request(QUrl("http://www.google.pl"));
    qDebug() << "Network request..." << endl;

    QNetworkReply * NetRepl;
    QObject::connect(man, SIGNAL(finished(QNetworkReply *)), this, SLOT(replyFinished(QNetworkReply*)));

    NetRepl = man->get(request);
    qDebug() << "Network reply..." << endl;

    qDebug() << "Connecting..." << endl;



void Networking::replyFinished(QNetworkReply* reply)
    // my code
    reply->readAll();

我的错误信息。我搜索了很多并阅读了文档:

错误:没有匹配的调用函数 QNetworkAccessManager::QNetworkAccessManager(Networking* const) man = new QNetworkAccessManager(this);

20: 错误:没有匹配的调用函数 QObject::connect(QNetworkAccessManager*&amp;, const char*, Networking* const, const char*) QObject::connect(man, SIGNAL(finished(QNetworkReply *)), this,SLOT(replyFinished(QNetworkReply*)));

【问题讨论】:

【参考方案1】:

在没有;的类中添加Q_OBJECT

class Networking : public QObject

Q_OBJECT
public:
    Networking();
    void getNetReply();

并重建所有项目

没有这个宏moc 找不到你的类,你不能使用信号/槽机制。此外,您的类应该显式或隐式地从 QObject 派生。

【讨论】:

感谢您的回答。我仍然收到这些错误消息

以上是关于错误:没有用于调用“QNetworkAccessManager::QNetworkAccessManager(Networking* const)”的匹配函数的主要内容,如果未能解决你的问题,请参考以下文章

错误:没有用于调用'variable'的匹配函数

调用 EJB 的 JNDI JBoss 错误 - 没有可用于处理的 EJB 接收器

c++ 错误:没有匹配的函数用于从函数内调用“getline”,但在 main 中有效

音频队列 - 没有用于调用“AudioSessionInitialize”的匹配函数

错误 ejb:“没有可用于处理的 EJB 接收器”

没有匹配的函数用于调用未解析的重载函数类型