2011-10-27 2 views
8

이것이 왜 내가 견과를 몰고 가는지 모르지만 그렇습니다. 나는 정의 된 함수를 가지고 있고 main에서 선언했다.C++의 정적 함수에 대한 extern

static void myFunc(int x); 

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

main() 

다른 클래스에서 myFunc (int x)를 사용하고 싶습니다. 그래서 내가해야 할 일은 그 클래스 헤더 내의 extern static void myFunc (int x) 뿐이라고 생각하고 클래스 정의에서 필요로하는 부분을 호출한다.하지만 작동하지 않을 것이다.

내가 뭘 잘못하고 있니?

감사

답변

15

당신은 통근 및 정적 사용할 수 없습니다 함께 그들은 상호 배타적입니다.

static


extern외부 연계를 의미 내부 연계를 의미 당신은 외부 연계가 필요한 경우에만 extern를 사용할 필요가

.

좋은 읽기 :
what is external linkage and internal linkage in c++?

+0

좋아, 그게 내가 생각했던,하지만 내가 정의에서 정적을 제거 할 때, 아직 구축되지 않습니다. –

+0

선언문을'static void myFunc (int);로 유지하면 정의에'static'이 있는지에 관계없이 * 함수가 *'static'이됩니다. –

+0

고마워, 나는 그것을 가지고, 나는 정적을 제거하고 또한 헤더에서 잘못 선언했다. –

관련 문제