gpt4 book ai didi

c++ - 错误 C2248 无法访问类 'boost::asio::basic_io_object 中声明的私有(private)成员

转载 作者:行者123 更新时间:2023-11-27 23:04:21 26 4
gpt4 key购买 nike

我有一个以 boost socket 作为成员的简单类,我试图将 IP 地址传递给它的构造函数,这给了我编译错误。

Error 2 error C2248: 'boost::asio::basic_io_object<IoObjectService>::basic_io_object' : cannot access private member declared in class 'boost::asio::basic_io_object<IoObjectService>' 

但是,如果我从它的构造函数中删除 std::string ip 参数,它就可以正常工作。知道为什么它没有编译

class TestConnection 
{
private:
boost::asio::ip::tcp::socket tcp_socket_;
public:
TestConnection(boost::asio::io_service &io, std::string ip):tcp_socket_(io)
{

}
~TestConnection()
{
}
};

int main()
{
boost::asio::io_service io_service;
std::string test_ip = "192.168.1.10";
TestConnection testconn = TestConnection(io_service, test_ip);
}

最佳答案

TestConnection testconn = TestConnection(io_service, test_ip);

在上面的行中,您实际上尝试调用 TestConnection 复制构造函数,这是不可用的,因为 tcp_socket_ 成员是不可复制的。相反,您可以按如下方式编写该行:

TestConnection testconn(io_service, test_ip);

关于c++ - 错误 C2248 无法访问类 'boost::asio::basic_io_object<IoObjectService> 中声明的私有(private)成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24624488/

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