【发布时间】:2015-09-15 22:35:28
【问题描述】:
我在头文件中声明派生构造函数及其在 *.cpp 文件中的定义时遇到了一些小问题
我的头文件:
class Nrpeoutputquery : public Query
{
private:
std::string queryText;
std::string queryType;
public:
//default Constructor
Nrpeoutputquery();
//Constructor
Nrpeoutputquery(std::string queryText, std::string queryType, sql::Connection *connection) : Query(connection);
//Destructor
~Nrpeoutputquery();
};
我的 *.cpp 文件
namespace nrpeout
{
Nrpeoutputquery::Nrpeoutputquery()
{
}
Nrpeoutputquery::Nrpeoutputquery(std::string queryText, std::string queryType, sql::Connection *connection) : Query(connection)
{
this->queryText = queryText;
this->queryType = queryType;
}
Nrpeoutputquery::~Nrpeoutputquery()
{
}
}
我收到编译错误:
Nrpeoutputquery(std::string queryText, std::string queryType, sql::Connection *connection) : Query(connection);
Nrpeoutputquery.h:19:112:错误:输入结束时应为“{”
显然编译器需要在头文件中定义构造函数。从基类的标准构造函数继承字段的构造函数的定义不会出现问题。
那么:有没有办法不直接在头文件中使用基类的非标准构造函数声明派生类的构造函数?
【问题讨论】:
标签: c++ inheritance constructor