C ++宏使用变量值

时间:2016-11-25 01:10:05

标签: c++ macros turbo-c++

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

for(int i = 0; i < 4; i++){
    func(PO<i>);    //Something like a macro to replace the value i in the function.    

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

这是我的代码

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

'l'和WHITE是参数。

2 个答案:

答案 0 :(得分:1)

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

在这里,

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

答案 1 :(得分:0)

使用数组或std::vector代替

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

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