我想创建一个构造函数,它可以获得未知数量的整数,因此,如果有人想创建一个new MyObj(1,2)
它应该有效,以及new MyObj(1,2,3,2,5)
或new MyObj(1,2,3,2,..,n)
。
谢谢
答案 0 :(得分:6)
有很多方法可以实现这一目标(包括建议为duplicate的好旧var_args
)。其中一个最简单的方法是使用std::initializer_list
:
class MyClass {
std::vector<int> v;
public:
MyClass(std::initializer_list init) : v(init) {}
};
答案 1 :(得分:3)
是的,只要类型完全相同,就可以使用std::initializer_list
。