-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:「超級班」和「孩子們」:使用一致的術語。 「超級」與「子級」一起,「小孩」與「父級」一起。但是,如果你真的想要一致性,請使用語言定義中使用的術語:「基類」和「派生類」。 –