私はPlayer
オブジェクトを持っています。そのオブジェクトはそのコンストラクタ内で例外をスローする可能性がありますので、私の主な機能ではtryブロックの中に2 Player
オブジェクトを作成しています。 私はそのようなstd::array
におけるこれら2つのPlayer
S格納したい:問題は、私はtryブロックの外に配列を使用することはできないだろうということです、と私はすべてのmain
を置くことを聞いたC++ tryブロックのオブジェクトを作成してstd :: arrayに格納します
try
{
Player p1(10, 10, ikazuchi);
Player p2(70, 10, hibiki);
std::array<Player, 2> players = {p1, p2};
}
をtryブロック内のコードはしばしば悪い考えです。
p1
とp2
がそこに存在しないため、私はstd::array
をtryブロックの後に宣言できません。
std::vector
で問題を解決できますが、コンパイル時にアレイのサイズを知っているときにはstd::array
を使用する方が良いと読んだことがあります。
デフォルトのコンストラクタを作成してオブジェクトを作成し、tryブロック内にそれらを埋め込むことができましたが、コンストラクタですべてを作成する方が適切なようです。
そのためのベストプラクティスは何ですか?
あなたはどんなエラーをキャッチしようとしていますか? –
tryブロックの外側に配列を宣言していない理由を再説明するか、言い換えることができますか? tryブロックの外側に宣言することができ、tryブロックの内部にプレーヤーを格納することができるからです。 – Eddge
'Player'は移動できませんか? – Jarod42