Newbie到C :麻烦设置从Anothe类继承的类中的类构造函数
Newbie to C++: Trouble setting up a class constructor from a class that inherits from anothe class
我正在尝试构建一个从另一类继承的类,并通过解析文本文件来初始化自身。所以我有:
在我的标题文件上(都在同一文件中):
class Mother{
public:
Mother();
Mother(std::string path);
int parse_textfile(std::string path);
protected:
std::string path;};
class Daughter : public Mother {
public:
Daughter();
Daughter(path);
Daughter(std::string TITLE);
protected:
std::string path
std::string TITLE
现在,在我的CPP文件上:
Mother::Mother(){};
Mother::Mother(string path)
:path(path)
{
parse_textfile(path);
};
Mother::parse_textfile(string path)
{
cout << "Processing file: " << path << endl;
ifstream file(path.c_str());
if (! file){
cerr << "unable to open input file: " << grid_path << " --bailing out! n";
return -1;
}else{
string TITLE;
getline(file, TITLE);
return Daughter(TITLE)
现在,我知道此代码是不正确的(显然,因为没有错误不会编译),但是我对C 仍然是如此原始,以至于此时确实有一些专家建议会很长一段路。
目的是创建一个继承解析器的女儿班,因为女儿班级本身应该解析文本文件并将所有变量保存在其中。由于文本文件中有很多信息,因此我会按线解析进行行。我只希望将此信息保留在女儿对象上,以便以后可以对此信息进行操作。
另外,我主要使用C 是因为我不想共享源代码。如果有一种更合适的语言,我也想从您那里听到它。在Python中,这对我来说是微不足道的,但是我再次不想分享发生的事情。
编辑1:
根据我从评论中获得的内容,我可以更清楚地看到什么是特定问题。
我有3个属于同一问题的文本文件,但是每个文本文件都包含不同的信息。
我想要的是获取有关如何初始化此文本文件作为从同一"母班"派生的单个对象的建议。解析器实际上属于每个女儿而不是母亲更有意义。无论哪种方式,对于那些旨在实际回答问题而不是问我"我为什么要这样做"的人,我感谢您的帮助和建议。
您的问题与C 本身无关,而是关于软件体系结构&amp;设计。您能否尝试将"解析器"功能提取到单独的类中(让其名称为"工厂")。鉴于您,您有一个决定可以创建哪个实例的人 - 母亲,女儿,无论如何。而且,您有一个类等级级的母女-ETC,可以共享必要的常见代码并在需要时覆盖一些特定的行为。
我知道这可以命名为" Overkill",但我建议您被称为"四本书",名为"设计模式"。在这里,它似乎是PDF的公共版本:https://github.com/dieforfree/edsebooks/blob/master/ebooks/design patterns, ELEMENTS OF REUSABL;
- 继承:构造函数,初始化C++11中基类的类C数组成员
- 如果我真的真的想从 STL 容器继承,并且我继承构造函数并删除新运算符,会发生什么?
- C++继承:构造函数中的字符串构造
- 继承构造函数和其他变量的解决方法
- 带有此指针的模板类多重继承构造函数不起作用?
- 虚拟继承构造函数的组装
- C++继承构造函数的可见性
- 继承构造函数(ISO 2011 SEC 12.9第7段)
- 没有C 11的继承构造函数
- 使用关键字继承构造函数时出乎意料的行为
- 继承构造函数不允许类似数组的初始化
- 从基于QObject的类继承构造函数
- 继承构造函数并提供新的重载:无参数基构造函数似乎不参与重载解析
- C++多继承构造函数
- 具有独占继承构造函数的类的值初始化
- C++ 继承构造函数重写
- 继承构造函数与转发
- 默认情况下继承构造函数 noexcept(true)
- 有没有办法在继承构造函数时访问初始值设定项列表
- 从 std::function 继承构造函数时"function returning a function"