Какой конструктор мне нужно реализовать, чтоб объект можно было инициализировать через присваивание?
Не моуг инициализировать объект с помощью оператора присваивания, компилятор выдает ошибку /home/anton/Programming/RoboCone/RoboCone/main.cpp:29: ошибка: no matching constructor for initialization of 'SocketClient'.
Выдает вот в этой строчке SocketClient client = server.Listen();
Server.Listen возвращает экземпляр объекта SocketClient(по значению).
Вот список реализованных в SocketClient конструкторов
SocketClient::SocketClient(int serverDescriptor, bool block){
sockaddr_storage client_addr;
socklen_t s_size = sizeof(client_addr);
socket_ = accept(serverDescriptor, (sockaddr*)&client_addr, &s_size);
if (block == false)
fcntl(socket_, F_SETFL, O_NONBLOCK);
}
SocketClient::SocketClient(SocketClient &other){
this->socket_ = other.socket_;
}
SocketClient::SocketClient(){
socket_ = false;
}
Так же реализован оператор присваивания
SocketClient& SocketClient::operator=(const SocketClient& other){
this->socket_ = other.socket_;
return *this;
}
Вот код Server.Listen
SocketClient SocketServer::Listen(){
SocketClient client(socket_);
return client;
}