在父类的构造函数中调用元素对象的构造函数

vik*_*raj 1 c++ constructor parent-child

问题更新:

我想在C++中执行以下操作:

struct Param {
public:
    int len;
    int in1;
    float in2;
};

Param params;

class Element {
private:
    int value1;
    float value2;
public:
    Element();
    Element(int n) {value1 = n; value2 = 0;}
    Element(int n1, float n2) {value1 = n1; value2 = n2;}
}

class Parent {
private:
    class Element elem;
    vector<Element> elemVec;
public:
    Parent();
    Parent(int n);
}
Run Code Online (Sandbox Code Playgroud)

我希望写下面的构造,使得在调用Parent构造函数,类元素的非默认的构造函数elemelemVec也被调用.我已经发现elem需要调用的构造函数如下:

Parent::Parent(int n) : elem(n) {

}
Run Code Online (Sandbox Code Playgroud)

我现在该如何构建中的每个元素elemVec向量,从而Element(int, float)构造函数被调用每个向量元素与intfloat值从结构域回升params.value1params.value2.elemVec需要由struct字段定义的大小params.len.

在构造函数体中编写循环会给出构造对象的不需要的行为.

nos*_*sid 5

以下实现应该有效.然而,这取决于隐式转换从intElement,并且不是一般的解决方案.

Parent::Parent(int n, const vector<int> &numVec)
    : elem(n),
      elemVec(numVec.begin(), numVec.end())
{ }
Run Code Online (Sandbox Code Playgroud)