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构造函数,类元素的非默认的构造函数elem和elemVec也被调用.我已经发现elem需要调用的构造函数如下:
Parent::Parent(int n) : elem(n) {
}
Run Code Online (Sandbox Code Playgroud)
我现在该如何构建中的每个元素elemVec向量,从而Element(int, float)构造函数被调用每个向量元素与int和float值从结构域回升params.value1和params.value2.elemVec需要由struct字段定义的大小params.len.
在构造函数体中编写循环会给出构造对象的不需要的行为.
以下实现应该有效.然而,这取决于隐式转换从int到Element,并且不是一般的解决方案.
Parent::Parent(int n, const vector<int> &numVec)
: elem(n),
elemVec(numVec.begin(), numVec.end())
{ }
Run Code Online (Sandbox Code Playgroud)