프로그래밍/cpp

네임스페이스(namespace) 제대로 사용하기,모듈화 프로그래밍 C/C++

콘파냐 2014. 5. 13. 13:55
반응형

네임스페이스(namespace)의 개념은 하나의 독립된 공간을 할당해 주는 것이라 할 수 있습니다. 이 공간의 개념을 일반적인 집 주소라고 생각해도 되는데, 개념 자체가 어려운 것은 아니지만 실제로 사용하려면 감이 안 잡힐 수 있습니다.  여기서는 C++을 기준으로 설명할 것이고, 클래스의 개념 내에서 네임스페이스를 사용하는 간단한 예제를 만들어 보려 합니다.. 또한 분할 컴파일의 개념도 간략하게 알고 넘어 갈 것입니다..


프로젝트 구조


예제 클래스의 관계도 입니다.

MyClass.h 파일에는 Myclass클래스의 선언(prototype)이 있습니다.

MyClass.cpp 파일에는 클래스의 멤버함수에 대한 정의가 있습니다.


main.cpp에 Myclass 의 선언과 정이가 모두 들어가도 상관없습니다. 하지만 사용하는 클래스가 많아질 수록 main내부는 클래스의 선언과 정의로 복잡해질 것입니다. 그래서 위와 같이 각 클래스를 모듈화하여 분리하여 코드를 작성합니다. 모듈화 프로그램의 기본입니다.

main.cpp에서는 늘 그래왔던 것 처럼 main 함수 윗부분에 클래스에 대한 정의가 있으면 됩니다. 그래서 MyClass.h 파일을 include(인클루드) 하면 됩니다.




아주 간단한 소스를 구성해 보았습니다.


네임스페이스를 선언하는 방식은 namespace 이름 { } 인데, 선언 구역이 클래스의 선언부분과 클래스의 멤버함수의 정의 구역 두군데가 모두 선언이 되어야 합니다. 왜냐면 MyClass.h를 MyClass.cpp에서 include를 하더라도 네임스페이스 공간이 다르게 되면 사용할 수 없기 때문입니다. 선언과 정의가 기본적으로 같은 공간 내에서 되어야 하기 때문이죠. 이 부분만 주의 해 주시면 됩니다.

그리고 위 파일을 컴파일 하는 방법은 G++ 기준으로 알려드리겠습니다.

명령어 : G++ -o main.exe -g MyClass.cpp main.cpp


2014/01/24 - [프로그래밍/C언어] - 분할컴파일 하는법(gcc) c언어


통함 개발툴을 사용한다면 쉽게 할 수 있지만, 기본적인 컴파일 방법도 익혀두셔야 합니다.

반응형