嘿我想弄清楚函數指針和如何傳遞它們/聲明它們,但我有點麻煩傳遞一個指針在我的Button類的構造函數,並設置它的成員函數指針也是傳遞的指針。功能指針問題:傳遞和聲明
- 當我寫按鈕(Func1)Button1它說預計';'
- 當我寫按鈕(Func1);它說沒有默認的構造函數按鈕
- 當我寫按鈕(& Func1);它說Func1需要一個初始化程序
- 當我寫按鈕(& Func1())Button1;它說表達式必須是左值或函數標識符
我在做什麼錯?
void Func1(){std::cout << "This is a function\n";};
void Func2(){std::cout << "This is another function\n";};
class Button
{
private:
void (*Func)(void);
public:
void Activate(){ Func() ;};
Button(void (*Function)(void)){
this->Func = Function;};
};
Button(&Func1) Button1;
Button(&Func2) Button2;
Button1.Activate();
Button2.Activate();
Button Button1(Func1);也應該合法,因爲without()函數的名稱實際上是該函數的起始地址。 – Giorgio
是的,這也是合法的。但是&不會導致任何事情。 – kravemir
**** facepalm ****我需要更多的睡眠....雖然謝謝! – Griffin