【发布时间】:2016-08-16 13:58:10
【问题描述】:
我在 C++ 方面并不先进。假设我有一组类,从A 到任何(数量会随着时间增长),它们使用相同类型的构造函数。假设它看起来像这样:
class A
{
private:
double m_x, m_y;
public:
A(const double &x, double &y, const short &n) { ... };
};
这些类中的每一个都有相同的m_x, m_y 变量,但它们的计算方式不同。现在有另一个类,比如Bla,它需要使用前一组类中的构造函数,如下所示:
class Bla
{
private:
Class m_class;
public:
Bla(const double &x, const double &y, const double &z, const short &i)
{
switch (i)
{
case 1: m_class = A::A(...); break;
case 2: m_class = B::B(...); break;
...
}
}
};
构造函数中的switch (i)根据@987654327@选择组的构造函数之一。如何使Bla 中的Class m_class 变量与构造函数中的switch (i) 一致?我应该选择什么类型的变量,或者如何选择?
或者,m_class 只需要保存来自组中的一个类的m_x, m_y 变量,以进行进一步处理/计算/等,还有另一种方法吗?我希望我能弄清楚这一点。
【问题讨论】:
-
听起来你需要一个工厂函数。
-
而且,首先,一个基本的公共超类持有
m_x和m_y。
标签: c++ class constructor