处理程序中的多个函数时.如何最好地处理他们的逻辑
When dealing with multiple functions in a program. How is it best to deal with their logic?
我目前正在掌握如何在程序中正确实现多个功能,我认为我的想法是正确的,但我只是想澄清一下。
在将某些逻辑放入特定函数时,我应该在该函数中处理最终结果,还是将其带回我的"主函数"?我知道这可能是一个模棱两可的问题,所以我在这里发布了我的代码,试图帮助解决问题。
这个程序只是在向量中添加一个字符串,但我想知道处理它的最佳方法是什么
事先非常感谢。
程序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()
?)中,尽管这在您的初始版本中可能有些过头了。尽管如此,总有一天,添加一个游戏可能会涉及更多的代码行,这些代码行会触发你将所有这些代码转移到另一个函数中。
相关文章:
- 警告处理为错误这里有什么问题
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 处理多个异常集合的C++方法
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- 使用流处理接收到的数据
- 获取日期异步信号安全吗?如果在信号处理程序中使用,它会导致死锁吗
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 基于多个条件处理地图中的所有元素
- 如何用数字处理log(0)
- SSL上的`curl_easy_send`和`curl_asy_recv`:如何处理`CURLE_AGAIN`
- 函数何时会在c++中包含stack_Unwind_Resume调用
- 错误处理.将系统错误代码映射到泛型
- 从文本文件中读取时钟时间和事件时间并进行处理
- 在运行时处理类型擦除的数据-如何不重新发明轮子
- 在for循环中使用auto vs decltype(vec.size())来处理字符串的向量
- 如何在自己的函数中最好地处理Mat中的不同数字格式
- 从 C# 调用C++时如何最好地处理未使用的指针?
- 处理程序中的多个函数时.如何最好地处理他们的逻辑
- 如何最好地处理具有未初始化内存的复制交换习惯用法
- 如何最好地处理对象初始化C++:空构造函数或指针