在一个程序中处理多个函数时。如何最好地处理他们的逻辑?
When dealing with multiple functions in a program. How is it best to deal with their logic?
我目前正在研究如何在我的程序中正确实现多个功能,我认为我的想法是正确的,但我只是想澄清一下。
将某些逻辑放入特定函数时,我应该处理该函数的最终结果还是将其返回到我的 "main function"?我知道这可能是一个模棱两可的问题,所以我在这里发布了我的代码来尝试帮助解决问题。
该程序只是将一个字符串添加到向量中,但我想知道处理它的最佳方法是什么。
非常感谢您。
计划 1.
std::vector<std::string> favouriteGames; //Stores favourite games
int menu = 0; //Menu navigation
std::cout << "1: Add Game. 2: Remove Game. 3: List Games. 4: Exit.";
std::cin >> menu;
//Menu
switch (menu)
{
case 1:
favouriteGames.push_back(AddGame());
break;
case 2:
//favouriteGames.erase(RemoveGame);
break;
case 3:
//ListGames();
break;
case 4:
break;
default:
std::cout << "Please enter correct data.";
}
//Add game
std::string AddGame()
{
std::string gameName;
int menu = 0;
std::cout << "Enter name of game you wish to add.";
std::cin >> gameName;
return gameName;
}
节目二。
或者当函数只处理数据而不 return 任何东西时像这样。
void AddGame(std::vector<std::string> favouriteGames);
int main()
{
std::vector<std::string> favouriteGames; //Stores favourite games
int menu = 0; //Menu navigation
std::cout << "1: Add Game. 2: Remove Game. 3: List Games. 4: Exit.";
std::cin >> menu;
//Menu
switch (menu)
{
case 1:
AddGame(favouriteGames);
break;
case 2:
//favouriteGames.erase(RemoveGame);
break;
case 3:
//ListGames();
break;
case 4:
break;
default:
std::cout << "Please enter correct data.";
}
//Keep Window open
std::string barn;
std::cin >> barn;
return 0;
}
//Add game
void AddGame(std::vector<std::string> favouriteGames)
{
std::string gameName;
int menu = 0;
std::cout << "Enter name of game you wish to add.";
std::cin >> gameName;
favouriteGames.push_back(gameName);
}
计划一
一般来说,您的函数应该一个工作。它使它们可以重复使用,并有助于保持您的界面清洁和稳定。
在这种情况下,这意味着您的函数实际上命名错误。它应该类似于 requestGameName()
.
然后您还可以将 .push_back
集成到它自己的第二个函数中(addGame()
?),尽管这在您的初始版本中可能有点矫枉过正。不过,总有一天,添加游戏可能会涉及更多代码行,这会触发您将所有这些代码移动到另一个函数中。
我目前正在研究如何在我的程序中正确实现多个功能,我认为我的想法是正确的,但我只是想澄清一下。
将某些逻辑放入特定函数时,我应该处理该函数的最终结果还是将其返回到我的 "main function"?我知道这可能是一个模棱两可的问题,所以我在这里发布了我的代码来尝试帮助解决问题。
该程序只是将一个字符串添加到向量中,但我想知道处理它的最佳方法是什么。
非常感谢您。
计划 1.
std::vector<std::string> favouriteGames; //Stores favourite games
int menu = 0; //Menu navigation
std::cout << "1: Add Game. 2: Remove Game. 3: List Games. 4: Exit.";
std::cin >> menu;
//Menu
switch (menu)
{
case 1:
favouriteGames.push_back(AddGame());
break;
case 2:
//favouriteGames.erase(RemoveGame);
break;
case 3:
//ListGames();
break;
case 4:
break;
default:
std::cout << "Please enter correct data.";
}
//Add game
std::string AddGame()
{
std::string gameName;
int menu = 0;
std::cout << "Enter name of game you wish to add.";
std::cin >> gameName;
return gameName;
}
节目二。 或者当函数只处理数据而不 return 任何东西时像这样。
void AddGame(std::vector<std::string> favouriteGames);
int main()
{
std::vector<std::string> favouriteGames; //Stores favourite games
int menu = 0; //Menu navigation
std::cout << "1: Add Game. 2: Remove Game. 3: List Games. 4: Exit.";
std::cin >> menu;
//Menu
switch (menu)
{
case 1:
AddGame(favouriteGames);
break;
case 2:
//favouriteGames.erase(RemoveGame);
break;
case 3:
//ListGames();
break;
case 4:
break;
default:
std::cout << "Please enter correct data.";
}
//Keep Window open
std::string barn;
std::cin >> barn;
return 0;
}
//Add game
void AddGame(std::vector<std::string> favouriteGames)
{
std::string gameName;
int menu = 0;
std::cout << "Enter name of game you wish to add.";
std::cin >> gameName;
favouriteGames.push_back(gameName);
}
计划一
一般来说,您的函数应该一个工作。它使它们可以重复使用,并有助于保持您的界面清洁和稳定。
在这种情况下,这意味着您的函数实际上命名错误。它应该类似于 requestGameName()
.
然后您还可以将 .push_back
集成到它自己的第二个函数中(addGame()
?),尽管这在您的初始版本中可能有点矫枉过正。不过,总有一天,添加游戏可能会涉及更多代码行,这会触发您将所有这些代码移动到另一个函数中。