У меня, похоже, очень сложное время с унаследованным классом, вызывающим явный конструктор суперкласса. Я просто не могу получить синтаксис правильно!Проблема конструктора с явным явлением суперкласса C++ при использовании файлов заголовка
Все примеры, которые я видел по этому вопросу, до сих пор не разделяют определение заголовка и встроенного класса (используя {} ') из forward-declarations с файлом заголовка, поэтому я не уверен в как покрыть синтаксис между файлами .h и .cc. Любая помощь будет оценена!
Здесь ошибка компилятор дает мне (НКУ):
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()"
Я понимаю, что он пытается вызвать конструктор по умолчанию для подключения, подключения(), так как он просто не понимает мой синтаксис.
Вот код:
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
}
Большое спасибо!
Спасибо! Я думаю, вы победили Джеффа на 13 секунд, поэтому я помету ваш ответ как принято (извините Jeff!) – 2009-04-25 18:32:58
Спасибо! По какой-то причине подавляющее большинство обучающих программ на C++ не показывают, как обстоят дела при использовании разделенных файлов h и cc .... – jotadepicas