例如,我有以下代码:
#include <iostream>
#include <array>
class Base {
public:
Base() : mA(std::array<int,2>()) {}
Base(std::array<int,2> arr) : mA(arr) {}
Base(/* what to write here ??? */);
private:
std::array<int,2> mA;
};
int main()
{
std::array<int,2> a = {423, 12}; // Works fine
Base b(a); // Works fine
Base c({10, 20}); // This is what I need.
return 0;
}
我应该如何定义构造函数以允许初始化,如上面“main”中的第 3 行所示?一般来说,我需要一个可配置的(在编译/运行时长度)结构,它允许使用数字列表进行初始化,例如 {1, 2, 3} 或 (1, 2, 3) 或类似的东西,而不需要元素-逐元素复制。为简单起见,我选择了 std::array,但恐怕它可能不适用于这种初始化。你会推荐什么容器?
谢谢, 科斯蒂亚