1樓:小李飛刀再飛刀
好像報錯這兩種型別是不匹配的。
void (form::*_ptr)();
void (mainform::* func)();
給他強制轉換一下:
typedef void (form::*_ptr)();
但是還是不明白你這樣做的目的何在。呼叫另外一個類的成員函式,為什麼不通過物件呢?或者靜態成員函式也行啊!要不然宣告control是mainform的友元類。
在你原來的control類的exec函式處理的有問題:
void exe()
我這樣修改了下:control接收到事件時(比如button被按下)它可以將這個訊息傳遞給mainform,由mainform來判斷並決定怎麼做,而不是把mainform的成員函式預先設定到control裡面。這樣我覺得比函式指標要好理解些。
對每個control設定它的parent,事件發生時,就呼叫parent的handleevent函式。這裡就是mainform的handleevent了。再在裡面根據sender和message來呼叫不同的成員函式。
class control;
class form;
class mainform;
class form
; class control
form * parent;
void setparent( form *form )
};class mainform : public form
; void handleevent(int sender, int message)
void init()};
2樓:
要在 class mainform類裡宣告 friend class control
這樣類間就可以相互呼叫函式了~
C類的問題基類成員函式可以呼叫子類的成員函式嗎
父類 子類 這種關係,本來設計就是把 具備共性的東西放在父類裡,不具備共性的放在子類裡.嚴格來說,父類是不能去呼叫某個子類特有的介面的.你這樣瞎搞 就破壞了這種構架,只能讓程式紊亂.所以你可以這樣子 在父類立面設計一個通用介面,然後對這個通用介面下指令,子類收到這個訊息,大多不處理,只有那個特殊的子...
c語言的函式指標舉個例子,c語言中函式指標是什麼 有什麼用 舉個例項
劉文正粉絲 函式指標告訴cpu下一步需要執行 的 的指標,一陣列十分相像.include void function int i,double d 一個函式的宣告 void anotherfunction int i,double d 另外一個函式宣告 int main mxl033 回答是對的。v...
C語言指標函式求救
1全部程式是錯的!首先要知道,陣列a,各元素的地址是連續的。當a定義為陣列時a 5 那麼系統會給陣列分配一個連續 物理上是連續的 的儲存空間。這樣將p a,就是將陣列的首地址賦予了指標p,然後p 就是指向了連續地址的下一個元素地址,是合法的。但是,如果a不是陣列,如你的程式 p a,將變數a的地址賦...