我想傳遞一個無參數的void函數或一個帶參數的void函數作爲參數。就像這樣:在C++中使用或不使用參數傳遞函數
DailyActivity activity1(&function1)
或
DailyActivity activity2(&function2(uint_t 1))
過去了DailyActivity::run()
被稱爲應觸發功能。
的DailyActivity
標題是這樣的:
class DailyActivity {
typedef void (*function_type)();
public:
DailyActivity(void (*f)());
virtual void run();
private:
function_type m_function;
};
構造函數和run()函數如下:
DailyActivity::DailyActivity(void (*f)()) : m_function((*f)) {
}
DailyActivity::run() {
m_function();
}
但我不管理(1)定義中的typedef一個正確的方法使兩個不同的函數被接受,並且(2)成功地傳遞函數2的參數。
你說的是兩個完全不同的功能類型。一個'typedef'將不能兼容它們。你將不得不使用可變參數或模板來完成你所要求的。 –