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 |
댓글