在c++中从一个函数传递到另一个函数
Passing arguments from function to function in c++
我是c++新手,我想做一个国际象棋游戏。
事情是这样的,我正在试着制作主菜单,但是遇到了麻烦。下面是我的代码片段:
int mMenu(int&, char&, bool&, char&);
int main(char&)
{
int choice;
char sure;
bool quit = false;
char ctrl // used for the control from main menu to main()
mMenu (choice, sure, quit);
do
{
if (ctrl == a)
NewGame();
else if (ctrl == b)
LoadGame();
else
quit = true;
}
while (quit == true);
return 0;
}
int mMenu(int& choice, char& sure, bool& quit, char& ctrl,)
{
do
{
cout << " Chess "
<< "------------------------ Main Menu ------------------------n"
<< "Please choose what operation you'd like to perform from the menu belownn"
<< "1. New Game.n"
<< "2. Load Game.n"
<< "Exit.n"
<< "Your choice: ";
cin >> choice;
if (choice == 1)
{
cout << "Are you sure you wish to start a new game? (Y/N) ";
cin >> sure;
if (sure != 'Y')
clrscr();
else
{
ctrl = a;
quit = true;
}
else if (choice == 2)
{
ctrl = b;
quit = true;
}
else if (choice == 3)
{
cout << "Are you sure you wish to exit? (Y/N) ";
cin >> sure;
if (sure != 'Y')
clrscr();
else
{
quit = true;
ctrl = c;
}
}
}
}
while (quit = true);
return ctrl;
}
从代码我的编译器(visual c++)说,int main()函数,mMenu不需要3个参数。什么是错的,我如何使它工作?
提前感谢。
你也可以看到我试图使用clrscr();但是编译器正在标记它,说它找不到它的定义,尽管在#include任何想法?
不需要3个参数,而是4个:
int mMenu(int& choice, char& sure, bool& quit, char& ctrl,)
// << the "," in the end
// shouldn't be there
如何修复?添加缺少的参数:
mMenu (choice, sure, quit, ctrl/*<a ctrl parameter goes here>*/);
您甚至定义了变量ctrl
,只是忘记将其作为最后一个参数传递:-)
这是因为您将mMenu定义为接受四个参数,但只使用三个
mMenu (choice, sure, quit);
什么是错误的是mMenu不接受3个参数。
有两种方法可以完成此编译:
- 把mMenu改成3个参数 使用当前的4个参数调用mMenu。
相关文章:
- 函数向量_指针有不同的原型,我可以构建一个吗
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 基于另一个成员参数将函数调用从类传递给它的一个成员
- 如何仅为一个函数添加延迟
- 构造函数正在调用一个使用当前类类型的函数
- C++-试图将函数指针推回到另一个CPP文件中的矢量时出错
- 有一个打印语句的函数是一种糟糕的编程实践吗
- 有没有什么方法可以使用一个函数中定义的常量变量,也可以由c++中同一程序中的其他函数使用
- 输入到文件并输出到另一个文件,并将流文件传递给函数
- 我不明白为什么我声明一个空的内部结构并将其传递给构造函数
- 如何创建函数管道,以便函数一个接一个地运行?
- 如何巧妙地编写两个函数——一个用于检查是否存在解决方案,另一个用于获取所有解决方案
- 在c++中的复制构造函数/一个声明语句中的初始化的延续中使用chain方法
- C :基类调用自己的虚拟函数 - 一个反图案
- 如何在这个交换函数(一个单独的链表)中找到错误
- 两个相同的函数(一个使用模板模式,另一个不使用)
- 你怎么能一次给一个函数一个参数呢
- 为什么要做两个函数?(一个是非const,另一个是const)
- 当代码在其他地方使用时,如何保证函数一个接一个地被调用