如何在c ++中创建一个接受x个参数的动态构造函数?

时间:2014-01-12 05:50:42

标签: c++

如何在c ++?

中创建一个接收x个参数的动态构造函数

例如:

my_constructor(int,int,...);

可以有多个用户输入的整数。

这甚至可能吗?

2 个答案:

答案 0 :(得分:2)

如果它们都是相同类型的所有参数,只需使用初始化列表

struct foo
{
    foo(std::initializer_list<int> init)
    {
        ....
    }
}

您仍然需要将这些添加到某种容器中(例如):

struct foo
{
    std::vector<int> v;

    foo(std::initializer_list<int> init)
      : v(init.begin(), init.end())
    { }

};

答案 1 :(得分:0)

你谈论它的方式,我认为不可能。你如何将所有这些参数分配给字段?您需要为对象动态生成不同的字段!我几乎可以肯定那是不可能的。但是,你可以做的是让构造函数将一个数组作为其参数的一部分,你可以使用不同数量的“子参数”来填充它。 祝你好运。