たとえば、次のコードがあります。
#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を選択しましたが、この種の初期化では機能しない可能性があります。どのコンテナをお勧めしますか?
ありがとう、Kostya