継承されたクラスが明示的なスーパークラスコンストラクターを呼び出すことで、非常に苛立たしい時間を過ごしているようです。構文が正しくないようです。
これまでに見たすべての例では、ヘッダーとインラインクラス定義({}を使用)をヘッダーファイルを使用した前方宣言から分離していないため、ヘッダーファイルをカバーする方法がわかりません。 .hファイルと.ccファイル間の構文。どんな助けでもいただければ幸いです!
これがコンパイラが私に与えるエラーです(gcc):
serverconnection.h:コンストラクター "ServerConnection :: ServerConnection(std :: string、std :: string)":serverconnection.h:25:エラー:入力serverconnection.ccの最後に `{'が必要です:グローバルスコープ:serverconnection。 cc:20:エラー: "ServerConnection :: ServerConnection(std :: string、unsigned int、short unsigned int、PacketSender *、int)"の再定義serverconnection.h:25:エラー: "ServerConnection :: ServerConnection(std :: string 、unsigned int、short unsigned int、PacketSender *、int) "以前にここで定義されたserverconnection.cc:コンストラクター" ServerConnection :: ServerConnection(std :: string、std :: string) ":serverconnection.cc:20:エラー:いいえ「Connection::Connection()」を呼び出すためのマッチング関数
構文を理解していないため、デフォルトのConnectionコンストラクターであるConnection()を呼び出そうとしていることを理解しています。
コードは次のとおりです。
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
}
よろしくお願いします!