我想實現的一個學校項目,在那裏我有一個包含函數指針在錯誤:無效使用無效的表達,C++
map<string, YMenu>
形式當我嘗試調用一個STL地圖的菜單系統YMenu中的一個成員函數,通過地圖添加一個新的函數指針到一個向量,我得到一個錯誤,說它是「void expression的無效使用」。我已附上下面的相關代碼。
矢量保持陣列:
vector<void (*)() > nextAction;
功能添加函數指針:
void YMenu::addNextAction(int index, void (*Action)())
{
nextAction[index] = Action;
}
語法調用將產生的錯誤成員函數時使用:
Menus["0.0"].addNextAction(1, Menus["0.1"].show());
用於可能的任何想法解決方案?我試圖找到谷歌和在這裏搜索,但似乎無法找到答案。 :/
求助:謝謝你們,顯然我在那裏犯了一些愚蠢的錯誤。我終於設法實現了代碼,並使用std :: function和std :: bind()來編譯和運行代碼。
該消息對應哪一行? –
'show'是什麼? –
應該被稱爲「函數指針的無效使用」 –