2011-04-11 5 views
2

test이라는 함수가 namespace buzz에 있습니다.다른 네임 스페이스의 함수를 어떻게 호출합니까?

안에있는 dummy이라는 다른 함수를 호출하고 있습니다.

Dummy is not a member of example.

가 어떻게 2 개의 다른 네임 스페이스 간의 통신을 가르쳐 주시겠습니까 :

나는 다음과 같은 오류가?

감사

+1

이 코드를 보일 수 있는가? – davka

답변

3

다음 코드는 gcc (예상대로)와 작동합니다. 문제는 질문에없는 것입니다.

#include <iostream> 

namespace example 
{ 
    void dummy() { std::cout << "Dummy\n"; } 
} 

namespace buzz 
{ 
    void test() { example::dummy(); } 
} 

int main() 
{ 
    buzz::test(); 
} 
3

네임 스페이스가 중첩되지 않은 경우 즉, 루트 하나에서 탐색을 시작한다 :

대신 :

example::dummy 

쓰기 :

::example::dummy 
+0

그래서 내 코드는 네임 스페이스'namespace myns {/ * my code * /}'내에 있고,'std'로 시작하는 네임 스페이스에서 제 3 자 함수를 완벽하게 호출 할 수 있습니다. 우리가 코드를 봐야한다고 생각해. – davka

2

이 쿼리에 대한 코드를 제공해야합니다. 그렇지 않으면 당신의 질문에서 단지, 당신이하고있다 같아요 맞춤법 오류 :

자연스럽게
namespace example { 
    void dummy() {} 
} 
namespace buzz { 
    void test() { example::Dummy(); } // capital 'D' instead of 'd' for dummy 
} 

, Dummy is not a member of example. :))

관련 문제