0
我有一個抽象類,它有一個函數指針列表,並且我想插入到該列表指針中,以指向子類中的函數。我有以下代碼:將子類中的函數添加到抽象父類中的函數列表中
class Parent {
public:
typedef Output* (*function_pointer)(Input*);
vector<function_pointer> compute_functions;
}
class Child : public Parent {
public:
Output* f1(Input* input) {}
Output* f2(Input* input) {}
void user_insertFunctions(){
compute_functions.push_back(&f1);
compute_functions.push_back(&f2);
}
}
但是我得到的錯誤: test1_Engine.cpp:37:32: error: ISO C++ forbids taking the address ofan unqualified or parenthesized non-static member function to form a pointer to member function. Say ‘&test1_Engine::f2’ [-fpermissive]
我必須在子類的功能,但功能的抽象父類的列表。我怎樣才能做到這一點?
'f1'和'f2'不是函數。他們是一流的方法。巨大差距。如果你想讓它們成爲函數,用'static'關鍵字聲明它們。 –