LINUX.ORG.RU

Статические функции члены в С++


0

0

При попытки объявить нечто вроде:
class PThread {
...
static int Pthread_create(pthread_t*, const pthread_attr_t*, void*(*)(void*), void*);
};

получаю такое:
error: cannot declare member function ‘static int pix::PThread::Pthread_create(pthread_t*, const pthread_attr_t*, void* (*)(void*), void*)’ to have static linkage

Компилирую командой:
g++ -fPIC -D_HAS_LINUX_ -D_DEBUG_ -c -o thread.o thread.cc

Вопрос простой и глупый: а посему так незя?

Re: Статические функции члены в С++

Code:

#include <cstdio>

typedef struct{
} pthread_t;

typedef struct{
} pthread_attr_t;

class PThread {
public:
        static int Pthread_create(pthread_t*, const pthread_attr_t*, void*(*)(void*), void*);
};

int PThread::Pthread_create(pthread_t*, const pthread_attr_t*, void*(*)(void*), void*) {
        return 666;
}

int main() {
        std::printf("%i\n", PThread::Pthread_create(0, 0, 0, 0));
        return 0;
}

Compile&Run:

absurd@karlstein:~/BoZo$ g++ ./BoZo.cc -Wall -o BoZo
absurd@karlstein:~/BoZo$ ./BoZo 
666 

Absurd ★★★ ()

Re: Статические функции члены в С++

Вопрос простой и глупый: у вас нестатических членов в теле функции нет?

Conficker ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.