我正在爲一個項目數據解析器工作的類。我要解析可以包含兩種不同類型的對象的文件:實現不同的參數集
類型-1: SB0 hardrectilinear 4(0,0)(0,82)(199,82)(199,0)
類型1必須作爲類塊存儲,具有以下屬性:BlockID,BlockType,number_of_edges,lowerleft,rightright,upperleft,upperright。
類型2: SB1 softrectangular 24045 0.300 3.000
類型2也必須被存儲作爲一類塊,具有以下屬性:BLOCKID,BlockType,面積,min_aspectRatio,max_aspectRatio。
是否有可能建立所謂的「塊」一個類,有一組不同的視屬性「BlockType」的論點?我已經構建了一個解析器,但是我使用sstream爲每個BlockType使用了兩個不同的類。
我已經表明我的實現解析器的時候要分析的文本文件只包含2型。關於如何使用單個類來完成此操作的任何想法?
SoftBlock.h:
#ifndef SOFTBLOCKLIST_H_
#define SOFTBLOCKLIST_H_
#include <string>
#include <vector>
#include "SoftBlock.h"
#include <fstream>
class SoftBlockList {
public:
SoftBlockList(std::string input_file);
std::vector<SoftBlock> get_softblocklist();
private:
std::vector<SoftBlock> softblocklist;
};
#endif /* SOFTBLOCKLIST_H_ */
SoftBlock.cpp:
#include "SoftBlockList.h"
using namespace std;
SoftBlockList::SoftBlockList(string input_file) {
ifstream filehandle;
filehandle.open(input_file.c_str());
string temp;
while(filehandle.good()){
getline(filehandle, temp);
SoftBlock block(temp);
softblocklist.push_back(block);
}
filehandle.close();
}
vector<SoftBlock> SoftBlockList::get_softblocklist(){return
softblocklist;}
「class block」是什麼意思?請提供一些代碼,顯示您想要實現的內容。 –
聽起來也許用例的模板。 –
我的意思是一個叫做塊的類。我編輯了這個問題。基本上,解析器來解析上述兩種不同類型的線的成稱爲「塊」的類。但取決於「BlockType」屬性,它必須具有不同的屬性。 –