たとえば、いくつかの値をグループ化しstruct
、オブジェクトを作成するときにそれらを簡単に設定したいと思います。
struct structure
{
char letter;
int number;
float decimal;
};
structure object('c', 42, 12.3); // this doesn't work
このようなコンストラクターを手動で作成できることはわかっています。
struct structure
{
structure(char letter, int number, float decimal) : letter(letter), number(number), decimal(decimal) {}
char letter;
int number;
float decimal;
};
structure object('c', 42, 12.3); // this of course do work
しかし、そうすることは、各メンバーに2回と3回言及する必要があるため、面倒です。しかし、私はいくつかの値をグループ化したいだけです...
私が利用しstd::pair
てこれらをネストする5つの値のうち3つだけがありますか?
typedef structure pair<char, pair<number, decimal>>;
structure object(make_pair('c', make_pair(42, 12.3)));
.first
しかし、さらにいくつかの値については、とを使用して正しい値をフェッチすることは非常に混乱します.second
。実際には、5つの値をグループ化したいです。そのためにネストされたペアを使用するのは少しハッキーなようです。
すべてのメンバーまたは同様のものを設定するためのコンストラクターはありますか?コンストラクターを記述せずに、いくつかの値を単純にグループ化するには、どのような選択肢が必要ですか?