gpt4 book ai didi

c++ - 在一个程序中处理多个函数时。如何最好地处理他们的逻辑?

转载 作者:行者123 更新时间:2023-11-28 05:55:31 25 4
gpt4 key购买 nike

我目前正在研究如何在我的程序中正确实现多个功能,我认为我的想法是正确的,但我只是想澄清一下。

当将一些逻辑放入特定函数时,我应该处理该函数的最终结果还是将其返回到我的“主函数”?我知道这可能是一个模棱两可的问题,因此我已在此处发布我的代码以尝试帮助解决问题。

该程序只是将一个字符串添加到一个 vector 中,但我想知道处理它的最佳方法是什么。

非常感谢您。

程序 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;
}

计划 2。或者当函数只处理数据并且不返回任何东西时像这样。

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()?),尽管这在您的初始版本中可能有点矫枉过正。不过,总有一天,添加游戏可能会涉及更多代码行,这会触发您将所有这些代码移到另一个函数中。

关于c++ - 在一个程序中处理多个函数时。如何最好地处理他们的逻辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34243265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com