类中的 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++ 函数不执行?的主要内容,如果未能解决你的问题,请参考以下文章

百战c++(10)

百战c++(10)

百战c++(10)

百战c++(10)

C++ 调用 C++ 库函数但执行了错误的函数

如何从另一个类中的一个类调用 setter 函数?