I created a class `CThread` which should be the base class to many other classes and contain the thread related code.

In `CThread` I have a variable:

```
int (*m_fpRun)() = 0;

```

Here `CThread` is inherited by class `CTemp` and `m_fpRun` is assigned procedure `CTemp::Run()`

I tried to assign the function to 

```
iRetVal = pthread_create(&m_sThreadID,
                         m_pAttr,
                         &m_fpRun,
                         m_pArg);

```

But I always get this error:

```
error: cannot convert ‘int (**)()’ to ‘void* (*)(void*)’ for argument ‘3’ to ‘int pthread_create(pthread_t*, const pthread_attr_t*, void* (*)(void*), void*)’
                            m_pArg);

```