c ++在创建时将构造函数参数从父对象传递给子对象

时间:2015-04-26 22:03:28

标签: c++ class struct constructor

这个问题是如此具体,以至于我在寻找答案方面遇到了很多麻烦......

有没有办法传递父类'构造函数参数自动到其自身的子类/结构的构造函数?

我想从数据文件中读取行以在创建时填充我的类及其子项,因此我想将数据文件传递给子项

我的数据结构是这样的:

vector of class Par(ifstream parameter)
   membervar
   membervar
   vector of struct Chld(the same ifstream parameter)
       membervar
       vector membervar

我希望能够通过调用父项的创建并为其提供数据文件来构建和填充所有子项和成员

vector<Par> parents(num, Par(datafile));

这将是我理想的创作线,快捷方便,我可以立即关闭数据文件,因为我有我需要的所有信息

这甚至可能吗?不会在孩子中调用默认构造函数吗?我希望之后不要再回去填补所有空洞的成员,但如果必须的话,我想它无法得到帮助

1 个答案:

答案 0 :(得分:0)

刚过去吗?

class Par {
    std::vector<Chld> children;

public:
    Par(std::ifstream& file)
    { 
        children.push_back(Chld(file));  // pre-C++11
        children.emplace_back(file);     // post-C++11
    }
};