【发布时间】:2012-05-17 09:56:21
【问题描述】:
问题更新:
我想在 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);
}
我希望编写以下构造函数,以便在调用 Parent 构造函数时,也会调用类元素 elem 和 elemVec 的非默认构造函数。我发现elem的构造函数需要调用如下:
Parent::Parent(int n) : elem(n) {
}
我现在如何构造elemVec 向量的每个元素,以便使用从结构字段params.value1 和params.value2 提取的int 和float 值对每个向量元素调用Element(int, float) 构造函数. elemVec的大小需要通过struct字段params.len来定义。
在构造函数主体中编写循环会导致构造对象的不良行为。
【问题讨论】:
-
我需要一个通用的解决方案。给构造函数的输入
numVec不必是整数向量,甚至可能不是向量。我以这个案例为例。 -
你能列出
numVec可能的类型吗?
标签: c++ constructor parent-child