Какой конструктор мне нужно реализовать, чтоб объект можно было инициализировать через присваивание?

Не моуг инициализировать объект с помощью оператора присваивания, компилятор выдает ошибку /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;
}

Ответы (0 шт):