如何遍歷數組來操作或訪問不同的對象及其成員函數?我有10個對象。現在我有相同的代碼訪問每個對象成員函數,並操作基本上爲每個對象複製和粘貼的對象數據。我只是想知道是否有一種方法可以使用循環來編寫一段代碼,並讓它遍歷所有10個對象。在C++中迭代對象名稱
而不是做類似下面這樣手動的:
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(...)
要做到這一切曾經在一個循環:
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();
}
}
是的,作爲如何在不同語言中完成的示例 – reformed
您最好試着解釋您實際嘗試在C++中執行的操作。不是每個人都有幸知道PHP。 – juanchopanza
你是什麼意思的顏色red.set();'?它應該是函數調用還是變量定義?這不是一個C++語句。 – Mikhail