2014-01-12 96 views

回答

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()) 
    { } 

}; 
+0

感谢的人,这真的帮助! – CodeDoctorJL

0

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

+0

我想同样的事情,但我忘了提及的参数都是相同的数据类型,所以Yuushi的建议似乎解决我的问题。尽管谢谢! – CodeDoctorJL

+0

不同类型,你可以使用可变参数模板,并将其存储在一个'的std :: tuple'。 – chris

相关问题