0
클래스로 선언 된 개인 멤버에 액세스 할 수 없습니다. 멤버로 부스트 소켓이있는 간단한 클래스가 있고 IP 주소를 생성자에 전달하려고합니다. 컴파일 오류.오류 C2248 클래스 '선언 :: boost :: asio :: basic_io_object <IoObjectService>
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);
}
여분의 std :: string 인수를 제거하면 왜 작동하는지 알 수 있습니까? –
@Pritesh Acharya, 이것은 MSVC의 비표준 확장입니다. GCC로 컴파일을 시도하면 두 경우 모두 실패합니다. –