如何声明一个指向函数的指针的成员

时间:2012-09-27 15:43:09

标签: c++

#define SYNC_DATA_CB list<string> (*syncData)(void)

我希望在我的班级中有一个成员(静态或不是无关紧要的),它将保存对函数指针的引用。

我试图像这样声明,但没有编译:

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

3 个答案:

答案 0 :(得分:1)

我认为你可能正在寻找的是一个typedef。

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

class SyncProcess{
  public:
   SyncProcess( syncData );
   static syncData sync_cb_;
};

答案 1 :(得分:0)

std::function<list<string> (void)> myPointer;

答案 2 :(得分:0)

使用typedef而不是macro:

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_;
};