我试图在 if-else 块中声明一个变量,如下所示:
int main(int argc, char *argv[]) {
if (argv[3] == string("simple")) {
Player & player = *get_Simple();
} else if (argv[3] == string("counting")) {
Player & player = *get_Counting();
} else if (argv[3] == string("competitor")) {
Player & player = *get_Competitor();
}
// More code
}
但是,当我尝试编译时,出现以下错误:
driver.cpp:38: 错误: 未使用的变量
‘玩家’
driver.cpp:40:错误:
未使用的变量“玩家”
driver.cpp:42: 错误: 未使用的变量
‘玩家’
driver.cpp:45:错误:
此处未声明“玩家”
范围
有任何想法吗?
您的问题是玩家超出了每个 if / else if 块的范围。
您需要在所有 if 语句之上声明变量。
但您不能为此使用引用,因为您必须立即初始化引用。
相反,你可能想要这样的东西:
int main(int argc, char *argv[]) {
Player * pPlayer = NULL;
if (argv[3] == string("simple")) {
pPlayer = get_Simple();
} else if (argv[3] == string("counting")) {
pPlayer = get_Counting();
} else if (argv[3] == string("competitor")) {
pPlayer = get_Competitor();
}
//Then if you really want to...
Player &player = *pPlayer;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)