c++ - 未声明的标识符 (newGame) - 指向函数作为参数的指针

标签 c++ function-pointers

我不确定我的编译器在这里想要什么。它给了我以下错误

error C2065: 'newGame' : undeclared identifier  

相关代码:

void createMenu() {
    MenuItem newGameOption = MenuItem("../art/newGame.bmp", newGame);
}
//start a new game
void newGame() {

}

在 MenuItem.h 中

class MenuItem {
    bool selected = false;
    std::string path; //Path to menu item's art

    void *pf(); //Function to execute upon selection

public :
    MenuItem(const char*, void pf()); //constructor
};

最佳答案

编译器错误似乎相当简单。无论“newGame”是什么,编译器都一无所知。这是它第一次看到这个名字。

您在文件后面定义了一个 newGame() 函数,这显然无济于事。在编译器尝试编译第一个函数时,它还没有读取它。

这是为您准备的一些 Google 美食:“前向声明”。放:

void newGame();

在createMenu()之前,让编译器知道它是什么。

关于c++ - 未声明的标识符 (newGame) - 指向函数作为参数的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27673413/

相关文章:

c++ - 模板基类 C++ 中的重写函数指针问题

c++ - Qt 连接事件到非 QObject 类型

C++ 简单交互式 shell 重定向输入时隐藏提示

c++ - mac 尝试使用 -nostdinc 进行编译

c++ - 为 typedef 的函数指针推导模板参数

c++ - 在构造对象时定义成员函数

c++ - 对于具有所有相同组件的 SSE vector ,是动态生成还是预先计算?

c++ - 检查 ptr 是否属于虚拟类?

C++ SetConsoleCtrlHandler,在没有全局变量的情况下传递数据进行清理

c++ - 返回父类的 C++11 unique_ptr 的函数指针