Here is what I want to realize:

```
class Delegate
{
public:
    void SetFunction(void(*fun)());
private:
    void(*mEventFunction)();
}

```

Then is the class named Test

```
class Test
{
public:
    Test();
    void OnEventStarted();
}

```

Now in Test(), I want to pass OnEventStarted to Delegate like this:

```
Test::Test()
{
    Delegate* testClass = new Delegate();
    testClass->SetFunction(this::OnEventStarted);
}

```

But OnEventStarted is a non-static member function, how should I do?