我知道这个错误已经发布了很多,但我无法弄清楚如何解决我的问题。 我需要做的是逐行读取文件,使用这些行创建Rule类型的对象,我将附加到向量rulesSet。
所以这是更新后的代码:
knowledgebase.h
class KnowledgeBase
{
private:
vector<Rule> rulesSet;
public:
KnowledgeBase(string fileName);
};
rule.h
class Rule
{
private:
int priority;
bool valid;
vector<Attribute> LHS;
vector<Attribute> RHS;
public:
Rule(string rule);
public:
bool isValid();
};
knowledgebase.cpp
KnowledgeBase::KnowledgeBase(string fileName)
{
ifstream file (fileName.c_str());
if (file.is_open())
{
string r = "rule";
for(string rule; getline( file, rule); )
{
Rule newRule(r);
if(newRule.isValid())
{
//this->rulesSet.push_back(newRule);
}
}
}
else {
cerr << "Could not open file! ";
}
}
rule.cpp
Rule::Rule(string rule)
{
cout << rule << endl;
return;
}
bool Rule::isValid()
{
return this->valid;
}
我很确定它与字符串规则有关,但我无法找到解决方法。任何建议都非常受欢迎。 谢谢。