0
我正在試圖製作一個函數指針數組來緩解一些否則會是噩夢的代碼。我想使用一組函數,如下所示。函數指針指向非靜態函數
void drawNothing(Point2, Point2, Point2, Point2);
我已經定義了函數指針的類型。
typedef void(*FunctionPointer)(Point2, Point2, Point2, Point2);
和一個數組來存儲指針本身。
FunctionPointer drawMSCase[16];
的問題是,當我嘗試將功能分配給一個插槽,像這樣
drawMSCase[0] = &Grid::drawNothing;
我收到以下錯誤
error: cannot convert 'void (Grid::*)(Point2, Point2, Point2, Point2)' to 'Grid::FunctionPointer {aka void (*)(Point2, Point2, Point2, Point2)}' in assignment
它的工作原理,如果我定義功能是靜態的,但我不能這麼做,因爲它會對我的設計產生太大的影響。我該如何解決這個問題?
這很棒。請記住,「表明課程」不僅僅是一種美容語法。這種指針是一種與普通函數指針完全不同的野獸。這兩者不可互換,也不兼容。希望你不需要他們。 – AnT
你說得對。我編輯了答案,使其更具信息性。 – broncoAbierto