2013-07-26 32 views
0

我想在C++中創建類似於事件的系統。我曾試圖創造類似的東西;從庫中傳遞對象/數據到控制檯應用程序(如何)

###Library 
class manager 
{ 
public: 
    void init(void i) { x = i }; 
    void fire() 
    { 
     x("test"); 
    } 
private: 
    void x; 
}; 

(空間)

###Console App 
void tester(char* i) 
{ 
    printf("%c", i); 
} 
int main() 
{ 
    manager m; 
    m.init(tester); 
    m.fire(); 
    return 0; 
} 

是的,我現在是完全錯誤的方式,但我需要類似的東西。我是新手,我不明白爲什麼我不能做出這樣的事情。

+0

使用'std :: function'。另外,C++不是「腳本」。 – syam

回答

2

你似乎在尋找函數指針。事情是這樣的:

typedef void (*EventFunc)(char*); 

class manager 
{ 
public: 
    void init(EventFunc callback) { x = callback }; 
    void fire() 
    { 
     x("test"); 
    } 
private: 
    EventFunc x; 
}; 

你的代碼的其餘部分應努力保持不變(除了printf("%c", i);應該printf("%s", i);)。

+0

完美!謝謝! :) – PiLaWYeR

相關問題