我正在制作一个程序,将跟踪高尔夫统计,所以我需要使球员。我创建了一个名为
getPlayer(int playerNum);
在里面我有所有的代码
switch(playerNum)
case 1: return(player1);break;
case 2: return(player2);break;
case 3: return(player3);break;
case 4: return(player4);break;
case 5: return(player5);break;
case 6: return(player6);break;
case 7: return(player7);break;
case 8: return(player8);break;
case 9: return(player9);break;
case 10: return(player10);break;在我的playermanager.h中
#ifndef PLAYERMANAGER_H
#define PLAYERMANAGER_H
#include <string>
class playerManager
{
public:
playerManager();
std::string getPlayer(int playerNum);
private:
std::string player1;
std::string player2;
std::string player3;
std::string player4;
std::string player5;
std::string player6;
std::string player7;
std::string player8;
std::string player9;
std::string player10;
};
#endif // PLAYERMANAGER_H现在,当我运行这个命令时,我得到了错误信息
'player1' was not declared in this scope我也得到了一个错误
break statement not within loop or switch 我已经通过调用文件读取器函数对字符串进行了智能化处理。我真的是c++的新手,我可能正在做一些愚蠢的错误,所以如果有人可以帮助我的话。提前感谢!
发布于 2012-07-25 03:41:31
去掉codereview之类的东西-
您是否碰巧实现了
std::string getPlayer(int playerNum);而不是
std::string playerManager::getPlayer(int playerNum);还有- switch
switch(playerNum)
{
case 1: return(player1);break;
case 2: return(player2);break;
case 3: return(player3);break;
case 4: return(player4);break;
case 5: return(player5);break;
case 6: return(player6);break;
case 7: return(player7);break;
case 8: return(player8);break;
case 9: return(player9);break;
case 10: return(player10);break;
}抛开这些--糟糕的代码。假设我是你的客户,告诉你我想要11个玩家而不是10个,然后呢?
发布于 2012-07-25 03:47:47
可能是一些不同的东西,但也可能是你想要的:
std::string playerManager::getPlayer(int playerNum) //<- here you need the class name
{
switch(playerNum)
{
//^- and here you don't show the { and } in your example, and this could be the
// reason for the "break statement not within loop or switch" error
case 1: return(player1);break;
case 2: return(player2);break;
case 3: return(player3);break;
case 4: return(player4);break;
case 5: return(player5);break;
case 6: return(player6);break;
case 7: return(player7);break;
case 8: return(player8);break;
case 9: return(player9);break;
case 10: return(player10);break;
}
}也就是说,使用数组(或向量)可能是更好的解决方案。
发布于 2012-07-25 03:49:44
您已经在getPlayer()函数中显示了以下代码:
switch(playerNum)
case 1: return(player1);break;
case 2: return(player2);break;
case 3: return(player3);break;
case 4: return(player4);break;
case 5: return(player5);break;
case 6: return(player6);break;
case 7: return(player7);break;
case 8: return(player8);break;
case 9: return(player9);break;
case 10: return(player10);break; 此代码不在函数内。我假设您只是没有发布几行代码来显示它所在的函数。请这样做,以便我们可以进一步帮助您。
此外,由于您使用的是播放器列表,因此应该考虑学习如何使用STL中的数组或容器(例如std::vector)。
https://stackoverflow.com/questions/11638128
复制相似问题