类中的 C++ 函数不执行?
Posted
技术标签:
【中文标题】类中的 C++ 函数不执行?【英文标题】:C++ Functions from class not performing? 【发布时间】:2018-03-15 16:30:52 【问题描述】:我正在尝试和学习课程,我希望这个基本项目(波兰语反向符号计算器)能够在其中工作。我可以让它在分离的空/整数中工作,但是当我试图把它放到类中时,它正在编译但程序立即退出,就像什么都没有一样。我错过了什么?我真的很想知道怎么了……
void appMenu::mainMenu()
int choice;
cout << "Extended Reverse Polish Notation calculator\n"
<< "Actions to perform: \n"
<< " 1. Input your operations. \n "
<< " 2. Load operations from file. \n"
<< " 3. Exit." << endl;
cout << "What action do you want to perform?" << endl;
cin >> choice;
if (choice == '1')
appMenu calcFromInput();
/* else if (choice == '2')
appMenu calcFromFile();
*/
else if (choice == '3')
exit(0);
else appMenu MainMenu();
粘贴码:https://pastebin.com/Cp9VW97U
【问题讨论】:
您不需要在函数调用前加上appMenu
。另外,您将int
(choice
) 与char
进行比较,而不是另一个int
(例如choice == '1'
)?
appMenu calcFromInput();
声明了一个函数,实际上什么也不做;不创建对象。最后的else
也有同样的问题。代码错误是appMenu MainMenu()
可能编译的唯一原因,因为您可能指的是mainMenu
,而不是MainMenu
。
创建一个appMenu
的对象为appMenu appM;
,然后调用函数MainMenu()
创建对象appM.MainMenu()
,根据pastebin中的代码,这应该被称为:@987654338 @
@Venkata Vamshi - 谢谢,就是这样。非常比你。
【参考方案1】:
appMenu calcFromInput();
这一行在运行时不做任何事情。它声明了一个名为calcFromInput()
的函数(即告诉编译器存在一个函数),该函数返回一个appMenu
类型的对象。如果你打算调用这个函数,那就是这样:
calcFromInput();
这个也一样
appMenu MainMenu();
【讨论】:
@Sheerley:你确定吗?是mainMenu
吗?还是说MainMenu
?以上是关于类中的 C++ 函数不执行?的主要内容,如果未能解决你的问题,请参考以下文章