配列を反復処理して、さまざまなオブジェクトとそのメンバー関数を操作またはアクセスするにはどうすればよいでしょうか? 私は10個のオブジェクトを持っています。現在、各オブジェクト メンバー関数にアクセスし、基本的に各オブジェクトにコピー アンド ペーストされたオブジェクト データを操作する同じコードがあります。ループを使用してそのコードを 1 回記述し、10 個のオブジェクトすべてをループさせる方法があるかどうか疑問に思っています。
以下のように手動で行う代わりに:
Color red.set();
Color green.set();
Color blue.set();
Color yellow.set();
Color purple.set();
...
次のようなループでこれを行う方法はありますか:
colors[5] = {"red", "green", "blue", "yellow", "purple", ...};
for(int i = 0; i < 10; i++){
Color colors[i].set();
}
PHPが同様のことを行うには、次のようになることを知っています。
$colors = array("red", "green", "blue", "yellow", "purple" ...);
for($i = 0; $i < 10; $i++){
${$colors[$i]} = $colors[$i];
// $red = "red";
}
C++でこれを行うことは可能ですか?
以下は、私がこれを尋ねている理由と私が得ていることに関する別の例です。
if(grid[row][col].ship == "red")
{
red.setShipDamage();
if(red.getShipSunk() == true)
red.destroy();
}
else if(grid[row][col].ship == "green")
{
green.setShipDamage();
if(green.getShipSunk() == true)
green.destroy();
}
else if( ... )
このすべてをループで 1 回実行するには:
for(int i = 0; i < 10; i++)
{
if(grid[row][col].ship == colors[i])
{
**colors[i]**.setShipDamage();
if(**colors[i]**.getShipSunk() == true)
**colors[i]**.destroy();
}
}