如何遍历数组来操作或访问不同的对象及其成员函数?我有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