我似乎对一个调用显式超类构造函数的继承类感到非常沮丧。我似乎无法正确使用语法!
到目前为止,我在这件事上看到的所有示例都没有将标头和内联类定义(使用 {})与带有头文件的前向声明分开,所以我不确定如何涵盖.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: error: no调用“Connection::Connection()”的匹配函数
我知道它正在尝试调用默认的 Connection 构造函数 Connection(),因为它只是不理解我的语法。
这是代码:
连接.h:
class Connection {
public:
Connection(string myOwnArg);
};
连接.cc:
#include "connection.h"
Connection::Connection(string myOwnArg) {
//do my constructor stuff
}
服务器连接.h:
#include "connection.h"
class ServerConnection : public Connection {
public:
ServerConnection(string myOwnArg, string superClassArg) : Connection(superClassArg);
};
服务器连接.cc:
#include "serverconnection.h"
#include "connection.h"
ServerConnection::ServerConnection(string myOwnArg, string superClassArg) {
//do my constructor stuff
}
提前非常感谢!