Ich habe eine Klasse Socket
, mit zwei Konstruktoren genannt:Objekt als privates Mitglied einer Klasse
Socket(int port){...}
Socket(string address, int port){...}
Ich mag eine Instanz dieser Socket-Klasse als privates Mitglied einer anderen Klasse verwenden, die Connection-Klasse, wie folgt aus:
class Connection{
private:
Socket socket;
//more stuff
};
im Konstruktor der Klasse Connection
ich möchte nur als Parameter eine Instanz von Socket
passieren und es an den privaten Mitglied zuweisen, wie folgt aus:
Connection:Connection(Socket socket){
this->socket = socket;
//...
}
Aber der Compiler fordert mich auf, den Konstruktor Socket
im Connection-Konstruktor aufzurufen (oder zumindest denke ich das); Ich erhalte diese Fehlermeldung:
error: no matching function for call to ‘Socket::Socket()’ Connection::Connection(Socket socket)
Was ist der richtige Weg, das zu tun ist (die Socket
außerhalb erklärt und als Parameter in dem Connection
Konstruktor)?
Mögliche Duplikat [Aufruf Konstruktor einer Klasse Mitglied in Konstruktor] verwenden (https://stackoverflow.com/questions/7761676/calling-constructor-of-a-class-member-in-constructor) –