使用变量值的 C++ 宏
C++ Macro to use values of variables
我有一个程序,其中有 4 个对象 class,比如 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是参数。
改用数组或std::vector
MyObject Pos[4] = {MyObject{42}, MyObject{51}, MyObject{21}, MyObject{12}};
for (auto& po : Pos) {
func(Po);
}
根据@SamVarshavchik 的评论,我找到了解决方案。
在这里,
Player *PK[4] = {&PO1,&PO2,&PO3,&PO4};
for(int i = 0; i < 4; i++}{
func(*PK[i]);
}
我有一个程序,其中有 4 个对象 class,比如 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是参数。
改用数组或std::vector
MyObject Pos[4] = {MyObject{42}, MyObject{51}, MyObject{21}, MyObject{12}};
for (auto& po : Pos) {
func(Po);
}
根据@SamVarshavchik 的评论,我找到了解决方案。
在这里,
Player *PK[4] = {&PO1,&PO2,&PO3,&PO4};
for(int i = 0; i < 4; i++}{
func(*PK[i]);
}