티스토리 뷰

카테고리 없음

C++의 namespace

머어하지 2018. 11. 16. 18:05

C++의 namespace

namespace는 효율적인 코드의 작성을 위해서 등장한 개념입니다. 큰 프로젝트가 진행될 경우 여러 팀에서 한 프로그램을 만들것입니다. 이 때, 서로다른 팀에서 만든 코드에 gogo()라는 함수가 중복되어 있다면 어떨까요? 합쳐서 사용하기 위해서는 한 쪽의 함수를 모두 바꿔주면 될 것 같지만 큰 프로젝트에서 모두 수정하기에는 힘들 것이고 함수의 이름이 바뀌면 그 의미를 반영하는것도 바뀌기 때문에 곤란해 질 수도있습니다.

이 때, namespace를 적용해주면 각 함수를 영역접근연산자인 '::'를 사용해서 접근할 수 있습니다. 간단한 예를 보겠습니다. namespace A로 ex() 함수를 감싸주었습니다. 이제 함수 ex()를 호출하려면 ::를 통해 접근을 해주어야합니다.


1
2
3
4
5
namespace A {
    void ex() {
 
    }
}


main() 함수에서 사용하기 위해서는 다음과 같이 호출해주어야합니다.


1
2
3
4
int main(){
    A::ex();
    return 0;
}


간단하게 namespace에 대해서 알아보았습니다. 실제로 PS 풀이를 할 때는 사용할 일이 거의 없을 겁니다.


앞서 cin과 cout을 사용할 때 std::cin, std::cout으로 영역접근연산자(::)를 사용해서 cin과 cout을 사용하였습니다. 매번 std::라는 반복적인 작업을 하면 귀찮아 지기 때문에 다음과 같이 std라는 namespace를 사용한다고 선언하여 생략을 할 수 있습니다.


1
using namespace std;


작성 후에는 std::를 생략하여 사용할 수 있습니다.


1
2
3
4
5
6
7
8
9
10
#include <iostream>
 
using namespace std;
 
int main(){
    int a;
    cin>>a;
    cout<<a;
    return 0;
}



댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday