[C++] namespace 와 std
# Language/C++

[C++] namespace 와 std

namespace 와 std







namespace 프로젝트를 여러 명이 나누어 개발하거나


다른 사람이 작성한 소스 코드나 목적 파일을 가져와서 사용하는 경우


같은 이름(identifier) 의 클래스, 상수, 변수, 메소드의 이름이 충돌하지 않도록 막기 위해 이름 공간을 생성한다.


이름 공간 내에 생성된 이름들은 별개의 이름으로 취급되어 충돌을 막음


namespace piggy {



}


piggy::sum()




std:: 이란 ANSI C++ 표준에서 정한 표준 이름 공간으로 모든 C++ 표준 라이브러리는 std 이름 공간에 만들어져 있다. 

C++ 표준 입출력 라이브러리에 포함된 cout, endl 등은 std:: 와 함께 사용된다.


생략하기 위해


using namespace std;




응 용



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
 
using namespace std;
 
namespace a{
    int num = 10;
    void function(){
        cout << "사랑합니다" << endl;
    }
}
 
 namespace b{
    int num = 20;
    void function(){
        cout << "사랑합니다. 진심으로" << endl;
    }
}
 
using namespace a;
 
int main(int argc, char** argv) {
    
    function(); //현재 using namespace를 a거를 사용하겠다고 해놓음 (21번라인) 
    a::function(); // a의 function 사용 
    b::function(); // b의 function 사용 
    
    cout << a::num << " " << b::num << endl;
    
    return 0;
}
cs




결 과



728x90

'# Language > C++' 카테고리의 다른 글

[C++] 객체 포인터  (0) 2019.01.04
[C++] 문자열 (C-string, string)  (0) 2019.01.01
[C++] const의 개념  (0) 2018.12.21
[C++] 이것저것 코드들  (0) 2018.12.21
[C++] 바람직한 C++ 프로그램 작성  (0) 2018.12.21
[C++] 구조체  (0) 2018.12.21
[C++] 인라인 함수 (Inline Function)  (0) 2018.12.21