extern статической функции в C ++ - PullRequest
10 голосов
/ 27 октября 2011

Я не знаю, почему это сводит меня с ума, но это так. У меня есть функция, определенная и объявленная в main.

static void myFunc(int x);

static void myFunc( int x)
{
   //do stuff
}

main()

Я хочу использовать myFunc (int x) в другом классе. Поэтому я думаю, что все, что мне нужно сделать, это extern static void myFunc (int x) в заголовке этого класса, а затем просто вызовите его там, где мне нужно в определении класса, но это не сработает.

Что я делаю не так?

Спасибо

1 Ответ

20 голосов
/ 27 октября 2011

Нельзя использовать extern и static вместе, они являются взаимоисключающими.

static означает Внутренняя связь
extern означает Внешняя связь

Вам нужно использовать только extern, если вам нужна внешняя связь.

Хорошее чтение:
что такое внешняя связь и внутренняя связь в c ++?

...