Можно ли определить статическую функцию-член класса в файле .cpp вместо его файла заголовка? - PullRequest
0 голосов
/ 02 августа 2011

У меня есть функция, которая должна запускаться только один раз для всех экземпляров класса. Я подумал, что должен использовать метод вызова статической функции.весь веб-пример показывает, что статическую функцию определяют в самом файле заголовка (внутри класса).моя функция большая, я не могу определить, что в заголовочном файле, что мне делать?за это.

Ответы [ 3 ]

6 голосов
/ 02 августа 2011

Как вы делаете для обычных функций:

FooBar.h

#ifndef FOOBAR_H
#define FOOBAR_H


class FooBar
{
public:
    static void test();
};

#endif

FooBar.cpp

#include "FooBar.h"

void FooBar::test()
{

}
2 голосов
/ 02 августа 2011

При использовании Linux

static pthread_once_t semaphore = PTHREAD_ONCE_INIT;
pthread_once( & semaphore, FooBar::test() );

Так что вы можете быть уверены, что пойдете один раз в своей функции

0 голосов
/ 02 августа 2011

, если кто-то хочет узнать больше о статической проверке, это Ссылка . Вы получите все детали.

...