处理程序中的多个函数时.如何最好地处理他们的逻辑

When dealing with multiple functions in a program. How is it best to deal with their logic?

本文关键字:处理 何最好 他们的 函数 程序      更新时间:2023-10-16

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

在将某些逻辑放入特定函数时,我应该在该函数中处理最终结果,还是将其带回我的"主函数"?我知道这可能是一个模棱两可的问题,所以我在这里发布了我的代码,试图帮助解决问题。

这个程序只是在向量中添加一个字符串,但我想知道处理它的最佳方法是什么

事先非常感谢。

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

程序I.

通常,您的函数应该有一个作业。它使它们可重复使用,并有助于保持接口的干净和稳定。

在这种情况下,这意味着您的函数实际上被错误地命名了。它应该类似于requestGameName()

然后,您也可以将.push_back配置到它自己的第二个函数(addGame()?)中,尽管这在您的初始版本中可能有些过头了。尽管如此,总有一天,添加一个游戏可能会涉及更多的代码行,这些代码行会触发你将所有这些代码转移到另一个函数中。