Ich habe eine sehr frustrierende Zeit mit einer geerbten Klasse, die einen expliziten Konstruktor der Superklasse aufruft. Ich kann einfach nicht die Syntax richtig bekommen!C++ Explicit Superclass Constructor Problem bei der Verwendung von Header-Dateien
Alle Beispiele, die ich bisher gesehen habe, trennen die Header- und Inline-Klassendefinition (mit {} 's) nicht von Vorwärtsdeklarationen mit einer Header-Datei, also bin ich mir nicht sicher wie man die Syntax zwischen den .h- und .cc-Dateien abdeckt. Jede Hilfe wäre willkommen! Hier
ist der Fehler der Compiler gibt mir (gcc):
serverconnection.h: In constructor "ServerConnection::ServerConnection(std::string, std::string)": serverconnection.h:25: error: expected `{' at end of input serverconnection.cc: At global scope: serverconnection.cc:20: error: redefinition of "ServerConnection::ServerConnection(std::string, unsigned int, short unsigned int, PacketSender*, int)" serverconnection.h:25: error: "ServerConnection::ServerConnection(std::string, unsigned int, short unsigned int, PacketSender*, int)" previously defined here serverconnection.cc: In constructor "ServerConnection::ServerConnection(std::string, std::string)": serverconnection.cc:20: error: no matching function for call to "Connection::Connection()"
Ich verstehe, dass es versucht, den Standard-Verbindungs Konstruktor, Anschluss() zu nennen, da es einfach nicht meine Syntax nicht versteht. Hier
ist der Code:
connection.h:
class Connection {
public:
Connection(string myOwnArg);
};
connection.cc:
#include "connection.h"
Connection::Connection(string myOwnArg) {
//do my constructor stuff
}
serverconnection.h:
#include "connection.h"
class ServerConnection : public Connection {
public:
ServerConnection(string myOwnArg, string superClassArg) : Connection(superClassArg);
};
serverconnection.cc:
#include "serverconnection.h"
#include "connection.h"
ServerConnection::ServerConnection(string myOwnArg, string superClassArg) {
//do my constructor stuff
}
Vielen Dank im Voraus!
Danke! Ich schätze, du schlägst Jeff um 13 Sekunden, also werde ich deine Antwort als akzeptiert markieren (sorry Jeff!) –
Danke! Aus irgendeinem Grund zeigt die überwiegende Mehrheit der C++ - Tutorials nicht, wie die Dinge sind, wenn getrennte h-und cc-Dateien verwendet werden .... – jotadepicas