본문 바로가기
  • 쓸쓸한 개발자의 공부방
C++

[C++] using namespace std;

by 심찬 2021. 8. 3.

 

using namespace std;

 

c++ 공부를 시작하면 가장 먼저 알아야 하는 것!

왜 이 코드 "using namespace std; " 를 먼저 넣어두고 실행해야 하는지 아래 예제를 통해 확인해본다.

 


 

algorithm 안에 있는 max 함수를 사용하고자 한다.

include를 통해 아래와 같이 코드를 작성했는데 컴파일 에러가 발생한다.

#include <algorithm>

int main()
{
    int n = max(1,2);
}

 

해결 방법은 아래와 같다.

 

c++ 표준의 모든 요소는 std 이름 공간 안에 있다.

 

std:: 를 max 함수 앞에 명시적으로 넣어주면 컴파일이 된다.

#include <algorithm>

int main()
{
    int n = std::max(1,2);
}

 

 

using 선언을 통해 필요한 함수를 사용할 수 있다.

  • using std::max;

using 지시어를 통해 std namespace 안에 선언된 모든 요소를 사용할 수 있다.

  • using namespace std;  
#include <algorithm>
//using std::max;     // using 선언 : 필요한 것만 선언해 사용할 수 있음
using namespace std;  // using 지시어 : std의 모든 요소를 사용할 수 있음 

int main()
{
    int n = max(1,2);
}

 

 

 

에러 발생 예시

using namespace std; 를 매우 기본적으로 사용하지만 알아둬야 할 중요한 사항이 있다.

#include <stdio.h>
#include <algorithm>
using namespace std;

int count = 0;

int main()
{
    printf("%d\n", max(1,2));
    printf("%d\n", count);
}

count 함수가 std 공간 안에 있어서 코드에서 선언한 int count와 충돌이 발생한다.

 

아래와 같이 std:: 와 :: 를 사용하며 명시적으로 선언을 통해 해결이 가능하다.

#include <stdio.h>
#include <algorithm>
//using namespace std;

int count = 0;

int main()
{
    printf("%d\n", std::max(1,2));
    
    printf("%d\n", ::count);
}

'C++' 카테고리의 다른 글

[C++] cout, cin, iomanipulator  (0) 2021.08.05
[C++] header : iostream, cstdio, cstdlib,  (0) 2021.08.04
[C++] namespace, using  (0) 2021.08.02
Online C++ compiler (무료 온라인 C++ 컴파일러)  (0) 2021.08.01
Boost C++ Libraries 설치 (Dev C++)  (0) 2021.07.29

댓글