2016-11-25 127 views
0

我有一个程序,有一个类的4个对象,比如PO1,PO2,PO3,PO4。 我想调用一些函数将这些对象作为for循环中的参数。 像这样:C++宏使用变量的值

我试过标记粘贴,但我得到的是POI,而不是让我的价值。 有没有办法做到这一点? (宏,功能等)

这里是我的代码

Player PO[4] = {Player{'l',WHITE}, 
       Player{'l',WHITE}, 
       Player{'l',WHITE}, 
       Player{'l',WHITE} 
       }; 

'L' 和白色的参数。

+1

正确的方式做,这是使用的,而不是“P 01”阵列,“PO2”,“PO 3”和“PO4”。这是阵列(或向量)的用途。 –

+0

不幸的是,每个对象都有一个非默认的构造函数。 – user2505282

+0

正如我所说:使用数组。你知道,你可以有一个非默认构造函数的对象数组。或者,也可以是对这四个对象的引用数组。这也会起作用。 –

回答

1

基于@ SamVarshavchik的评论,我得到了一个解决方案。

这,

Player *PK[4] = {&PO1,&PO2,&PO3,&PO4}; 
for(int i = 0; i < 4; i++}{ 
    func(*PK[i]); 
} 
0

使用数组或std::vector代替

MyObject Pos[4] = {MyObject{42}, MyObject{51}, MyObject{21}, MyObject{12}}; 

for (auto& po : Pos) { 
    func(Po); 
} 
+0

等一下。让我试试这个。似乎没有工作。我只会输入我得到的错误。 – user2505282

+0

1)初始化仅部分被括起来。 2)错误地使用typedef MyObject(类名) – user2505282

+0

你在某处遗漏了一个'}'或者''''''。 – Peter