2012-09-27 39 views
0
#define SYNC_DATA_CB list<string> (*syncData)(void) 

我想在我的类中有一个成员(静态或不是无关紧要),它将保存对函数指针的引用。ro如何声明一个成员是指向函数的成员

我想声明这个样子,但没有编译:

SyncProcess{ 
    public: 
    SyncProcess(SYNC_DATA_CB); 
    static SYNC_DATA_CB sync_cb_; 
} 
+0

这甚至还没有接近到C;请仅使用适用的语言标记您的问题。你也没有正确地声明类。 –

回答

1

我想你可能会寻找是一个typedef来代替。

typedef list<string>(*syncData)(void); 

class SyncProcess{ 
    public: 
    SyncProcess(syncData); 
    static syncData sync_cb_; 
}; 
0
std::function<list<string> (void)> myPointer; 
0

使用的typedef,而不是宏:

class SyncProcess 
{ 
public:  

    // Typedef to create function pointer alias SyncDataFunc 
    typedef list<string>(*SyncDataFunc)(); 

    // Use alias as input parameter type 
    SyncProcess(SyncDataFunc func); 

    // Use alias as static member type 
    static SyncDataFunc sync_cb_; 
};