[C++] 이름공간으로 분리된 함수의 선언/정의가 가능한가요?
글쓴이: gurumong / 작성시간: 토, 2010/05/08 - 3:52오후
C++을 공부하고 있습니다
네임스페이스를 공부하면서 머리속이 많이 복잡해지는데요
표준에서 아래와 같이 함수의 선언과 정의가 서로 다른 이름공간으로 분리되어 사용되는것도 가능한가요?
// module.h namespace A { extern int var; int func(void); //네임스페이스A에서 함수선언 }
// module.cpp #include "module.h" int var = 10; namespace B { using namespace A; //using 지시어로 네임스페이스A 사용 int func(void) //네임스페이스B에서 함수정의 { return ++var; } }
// main.cpp #include "module.h" using namespace A; int main(void) { func(); //네임스페이스A에서 선언되고, 네임스페이스B에서 정의된 함수 사용 }
Forums:
뭘 원하시는지 모르겠네요.
해봤더니 안 되는군요.
아마도
선언과 정의가 각각 다른 namespace 에서 define 되어도 가능한지 테스트해 보실려는 것 같은데요.
그런게 가능하지는 않을 것 같네요. 그런게 가능하다면 COM 같은게 나오지 않았겠죠.
COM과 무슨 상관이 있죠?
COM을 몰라서...
// module.cpp#include
로 작성하면 됩니다. 같은 level의 다른 namespace scope 안에서는 일단 안되는 걸로 알 고 있습니다. 하나 상위 레벨 namescope 에선 대체적으로 문제 없었습니다.
Neogeo - Future is Now.
Neogeo - Future is Now.
이런 방식으로 확인해봤습니다.
//이런게 나은거 같습니다.
- namespace 안에 namespace 보다는 class와 상속을 사용하는 방식
- COM GUID가 namespace 역할.을 하나봅니다. 이것은 AFX의 GUID와도 연관되어 보입니다.
http://social.msdn.microsoft.com/Forums/en-US/vclanguage/thread/c8aea791-0926-4fbd-a4c5-a658cd0a9b1b
http://www.hanb.co.kr/ebook/look.html?src=email&kw=0000BA&ACENO=7&isbn=9788979149456
http://msdn.microsoft.com/en-us/library/h627s4zy.aspx
http://stackoverflow.com/questions/5978981/c-namespace-versioning
http://stackoverflow.com/questions/5966647/c-namespace-question
http://snslab.kangwon.ac.kr/home/?bo_table=openclass&doc=bbs/gnuboard.php&wr_id=59
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
댓글 달기