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

C++ c++;在创建时将构造函数参数从父对象传递给子对象,c++,class,struct,constructor,C++,Class,Struct,Constructor,这个问题太具体了,我很难找到答案 是否有一种方法可以自动将父类的构造函数参数传递给其内部子类/结构的构造函数 我想从数据文件中读取行以在创建时填充类及其子类,因此我也想将数据文件传递给子类 我的数据结构如下: vector of class Par(ifstream parameter) membervar membervar vector of struct Chld(the same ifstream parameter) membervar v

这个问题太具体了,我很难找到答案

是否有一种方法可以自动将父类的构造函数参数传递给其内部子类/结构的构造函数

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

我的数据结构如下:

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));
向量父对象(num,Par(数据文件));
这将是我理想的创建行,快速和简单,我可以关闭数据文件后,因为我有我需要的所有信息

这可能吗?默认构造函数不只是在子类中调用吗?我希望以后不必再回去填充所有的空成员,但如果必须的话,我想也没办法了。

就通过它吧

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
    }
};
<代码>类PAR 性病媒儿童; 公众: Par(标准::ifstream和文件) { children.push_back(Chld(file));//pre-C++11 children.emplace_back(文件);//post-C++11 } };
如果我理解正确,为什么不手动调用所有构造函数呢?短语“父类”和“子类”通常指的是继承。你似乎在非标准意义上使用它们,这会误导很多人。嗯,是的,你可能是对的,我不知道,所以我不得不使用push_back?它不会在创建列表时读取数据,比如初始化数组{1,2,3,4等等}@Kavukamari,我不知道你在问什么;使用类似vector vec(NUMBEROFITEMS,(一些类似cin的函数,每次对流进行处理并获取一个双值))@Kavukamari,您可以使用一对迭代器构建它:
vector vec(std::istream_迭代器{input},std::istream_迭代器{})