gpt4 book ai didi

C++接口(interface)继承问题

转载 作者:行者123 更新时间:2023-11-30 04:36:29 26 4
gpt4 key购买 nike

嘿,我正在尝试创建一个 C++ stomp 客户端,我的客户端构造函数是:

Client(std::string &server, short port, std::string &login, std::string &pass, Listener &listener);

它获取一个监听器对象,当监听器是以下接口(interface)时:

class Listener {

virtual void message(StmpMessage message) =0;
};

现在我尝试在测试类中实例化一个客户端:

class test : public virtual Listener {
public:
void message(StmpMessage message) {
message.prettyPrint();
}
int main(int argc, char* argv[])
{

Client client("127.0.0.1", 61613, *this);
return 0;
}


};

我将其发送给客户,因为这是一个监听器对象,我收到以下错误:

/Users/mzruya/Documents/STOMPCPP/main.cpp:18: error: no matching function for call to 'Client::Client(const char [10], int, test&)'
/Users/mzruya/Documents/STOMPCPP/Client.h:43: note: candidates are: Client::Client(std::string&, short int, std::string&, std::string&, Listener&)
/Users/mzruya/Documents/STOMPCPP/Client.h:37: note: Client::Client(const Client&)

最佳答案

它不起作用,因为您将错误的参数传递给 Client c'tor ......

Client(std::string &server, short port, std::string &login, std::string &pass, Listener &listener);

你叫它

客户端客户端("127.0.0.1", 61613, *this);

…您错过了passlogin 参数。你的听众很好。这个问题与继承有关。

关于C++接口(interface)继承问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4526769/

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