gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 04:40:07 25 4
gpt4 key购买 nike

在我的对象“处理程序”中我有以下代码:

Product tempProduct; // temporary Product storage variable
LINE481 tempProduct.setHandler(this);

在我的 Product.h 中:

#include <string>
#include <qtimer.h>
#include "HandleTCPClient.h"


#ifndef PRODUCT_H
#define PRODUCT_H

class Handler;

//Define ourselves a product class
class Product
{

void startTimer();

public:
Product();

string seller, itemName, description, highestBidder;
double price, min, buyingPrice, currentBid;
int time;
bool isSold;
Handler handler();

void setHandler(Handler h);

public slots:
void setProductToSold();

};

#endif

对于我的 Product.cpp:

#include <string>
using std::string;

#include "Product.h"

Product::Product()
{
seller = "";
itemName = "";
price = 0.00;
min = 0.00;
buyingPrice = 0.00;
time = 0;
description = "";
highestBidder = "None";
currentBid = 0.00;
}

void Product::setHandler(Handler h)
{
handler = h;
}

我遇到的问题:

HandleTCPClient.cpp: In member function âint Handler::HandleTCPClient(int, std::string, std::string)â:
HandleTCPClient.cpp:481: error: no matching function for call to âProduct::setHandler(Handler* const)â
Product.h:34: note: candidates are: void Product::setHandler(Handler)

最佳答案

您可能想像这样声明您的 setHandler 函数:

void Product::setHandler(Handler *h)

此外,在 Product 类中,声明 handler 如下:

Handler *handler;

看起来您可能更熟悉 Java 或 Python 等没有显式指针语法的语言。在 C++ 中,您必须使用 * 指示显式声明指针,否则编译器将尝试复制和传递 value 对象(通过其复制构造函数复制整个对象)。

关于c++ - 没有匹配的调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1778245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com