C ++错误没有匹配的调用函数

巴里·迈克尔·道尔

我一直在进行Qt分配,并且已经完成了整个任务,但是我似乎无法修复一个最终的错误,该错误使我的程序无法运行。

错误是:

no matching function for call to 'Vendor::Vendor(QString&, QString&, bool&)'
  Vendor supplierInfo(supplierNmae,supplierEmail,supplierIsManufacturer);
  line 41                                                              ^

它由两个类组成,但是只有我的供应商类和主类受此错误影响。

这是我的main.cpp的代码:

#include <QCoreApplication>
#include "vendor.h"
#include "product.h"
#include <QString>
#include <QTextStream>

QTextStream cout(stdout);
QTextStream cin(stdin);

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    //Declare variables
    QString productName;
    double productPrice;
    QString supplierName;
    QString supplierEmail;
    QString supplierIsManufacturerStr;
    bool supplierIsManufacturer;

    //Get user input
    cout << "Enter the product name:\t";
    productName = cin.readLine();
    cout << "Enter the product price:\tR";
    cin >> productPrice;
    cout << "Enter the supplier name:\t";
    supplierName = cin.readLine();
    cout << "Enter the supplier email:\t";
    cin >> supplierEmail;
    cout <<"Is the supplier a manufacturer:\t";
    cin >> supplierIsManufacturerStr;

    if(supplierIsManufacturerStr.at(0).toLower() == 'y') {
        supplierIsManufacturer = true;
    } else {
        supplierIsManufacturer = false;
    }

    //Implement classes
    Vendor vendor(supplierName, supplierEmail, supplierIsManufacturer);
    Product product(productName, productPrice, vendor);
    product.setSupplier(supplierName, supplierEmail, supplierIsManufacturer);

    product.toString(supplierIsManufacturer);

    return a.exec();
}

这是我的vendor.h文件的代码:

#ifndef VENDOR_H
#define VENDOR_H

#include <QString>

class Vendor {
public:
    Vendor();
    void setDetails(QString name, QString email, bool isManufacturer);
    bool isManufacturer();
    QString getName();
    QString toString();
private:
    QString m_Name;
    QString m_Email;
    bool m_IsManufacturer;
};

#endif // VENDOR_H

我仍然回到有关使用类的领域,所以我还很不实践,希望能对此提供任何帮助。先感谢您。

塔夫里

Vendor类缺少构造匹配的main.cpp行。要么实现构造函数:

// Vendor.h
class Vendor {
public:
  Vendor();
  Vendor(const QString& name, const QString& email, bool isManufacturer);
  ...

// Vendor.cpp
Vendor::Vendor(const QString& name, const QString& email, bool isManufacturer)
: m_Name(name), m_Email(email), m_IsManufacturer(isManufacturer)
{}

或使用现有setDetails功能:

Vendor vendor;
vendor.setDetails(supplierName, supplierEmail, supplierIsManufacturer);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

c ++:函数“没有匹配的函数可调用”错误

发生没有匹配的函数来调用C ++中的错误

C ++错误没有匹配函数调用静态模板方法

C ++ Lambda-错误:没有匹配的函数可调用

C ++结构错误“没有匹配的调用函数...”

C ++错误::没有匹配的函数来调用'function'

C ++:没有匹配的函数可调用''

C ++:没有匹配的函数来调用

C ++模板:没有匹配的调用函数

C++ - 没有匹配的函数调用

C++泛型方法给出“没有匹配的调用函数”错误

C ++错误:没有匹配的函数来调用'print_size'

C ++中的多线程处理时出现“没有匹配的函数调用”错误

C ++ Boost Geometry错误:没有匹配的函数来调用“ assertion_failed”

C ++错误:没有匹配的函数来调用'simplex615 <arbitraryFunc> :: amoeba

如何编译程序时出现错误“没有匹配的函数调用'to_string'”?C++

C ++类错误信息:没有匹配的调用函数

编译错误:“没有匹配函数调用'std :: vector <Card *> :: insert(int,Card *&)'” C ++

C++ string.replace 生成“没有匹配的调用函数”错误

没有解决错误“函数调用不匹配”C++

C ++错误:使用argc,* argv []和多维数组调用void函数时,“没有匹配的函数要调用”

没有匹配的函数错误C ++构造函数

错误:没有匹配的函数调用'sf::RenderWindow::draw(<未解析的重载函数类型>)'| C++ 中的 SFML

在C ++映射中查找值:没有匹配的调用函数

调用 CLASS:CLASSCPP(C++) 没有匹配的函数

C ++-没有匹配的函数来调用'getaddrinfo'

TCP-C ++-没有匹配的函数可以调用

C ++线程-没有匹配的函数来调用

重构C ++,“没有匹配的函数要调用”