-3
我很新的C++,我试图建立一个从另一个继承的类。在这种情况下,我有一个超类DataScraper,它应该有两个孩子,JSONDataScraper和XMLDataScraper。呃...它不起作用。当我编译,我得到以下信息:子类调用超类的构造函数
'标识':构造函数初始化列表只能在构造函数中定义(C2250)
datascraper.h
#include <string>
#include <vector>
#include <Qstring>
class DataScraper
{
private:
std::vector<QString> GetFiles(const QString folder);
protected:
std::vector<QString> filesToAnalyze;
public:
DataScraper(const QString folderPath);
DataScraper(const std::vector<QString>& paths);
};
datascraper。 cpp
#include "datascraper.h"
#include "Windows.h"
DataScraper::DataScraper(const std::vector<QString>& paths)
{
//...
}
DataScraper::DataScraper(const QString folderPath)
{
//...
}
std::vector<QString> DataScraper::GetFiles(const QString folder)
{
//...
}
而现在,JSONDataScraper文件。
#include "rapidjson.h"
#include "datascraper.h"
#include "streamreader.h"
#include <QString>
class JSONDataScraper : public DataScraper
{
private:
StreamReader *FileContentsReader;
public:
JSONDataScraper(QString folderPath);
JSONDataScraper(std::vector<QString> files);
};
jsondatascraper.cpp
#include "jsondatascraper.h"
#include "streamreader.h"
#include "datascraper.h"
#include <QString>
JSONDataScraper::JSONDataScraper(const std::vector<QString>& paths) : DataScraper(paths)
{
//...
}
JSONDataScraper::JSONDataScraper(const QString& pathToFile) : DataScraper(pathToFile)
{
//...
}
我能做些什么?
第一步 - 构建一个[MCVE]。 –
Re:“超级班”和“孩子们”:使用一致的术语。 “超级”与“子级”一起,“小孩”与“父级”一起。但是,如果你真的想要一致性,请使用语言定义中使用的术语:“基类”和“派生类”。 –