2013-03-18 14 views
2

최근에는 함수/메서드 그룹이지만 데이터는 없으므로 최근에 네임 스페이스를 방문했습니다. 논리적 인 방법은 네임 스페이스 내부에 붙여야합니다. (이 질문에 아무것도 없으면 죄송합니다.)네임 스페이스 오류 '네임 스페이스 이름이 아닙니다.'

Math.h

namespace Math { 

    double Euclidean(); 

} 

#include "Math.h" 
double Math::Euclidean() { 
    // Implementation 
} 

그리고 다른 네임 스페이스에서 Math.cpp, 나는 "수학"네임 스페이스에 액세스 할 필요가 :

나는 다음이

namespace foo { 

    foo(); 
} 

푸 통화 당

#include "Math.h" 
#include "foo.h" 

using namespace Math; 

foo::foo() { 
    // use the math function 
    Math::Euclidean(); 

}

나는 오류 얻을 :

Math’ is not a namespace-name

아마 정말 간단 뭔가를 실종 해요,하지만, 나는 그것을 알아낼 수 없습니다.

다음을 읽으려고했습니다 : Here하지만이 클래스를 사용하는 것으로 보이며 클래스를 사용하지 않고 싶었습니다.

+2

오류가 발생하는 라인은 무엇입니까? 'double Math :: Euclidiean()','네임 스페이스 수학 사용하기 '또는 다른 곳? – Rup

+8

''math.h ''도 C 표준 헤더입니다. 아마도 컴파일러에 포함 된 것입니다. –

+0

헤더에서 일부 포함 물을 붙여 넣는 것을 잊었습니까? –

답변

4

이 질문은 한 시간 동안 낡은 것이므로 @Bo Persson의 직관적 인 의견을 알리고 있습니다. 당신은 가능성이 Math.hmath.h 같은 파일을 설명하는 윈도우를 사용하는

"math.h" is also a C standard header. Perhaps that's what the compiler is including.

.

표준 라이브러리 헤더와 이름이 같지 않아 파일의 이름을 바꾸면 컴파일러에서이를 볼 수 있습니다.

+0

Windows를 사용하고 있지 않습니다. 하지만, 방금 집에 왔으니 내가 제안한대로 할거야, 고마워. – Phorce