평소에 쓰던 using namespace std; 가 어떤 의미를 가지고 있는지 알아보기 위해 찾아보던 도중 이런 제목의 글이 있었다.
using namespace std를 쓰면 안되는 이유. 왜 안되지? 평소에 알고리즘 문제를 풀다보면 그냥 자연스레 적고 본다. 찾아본 결과 그 이유는 우리가 사용하는 cin, cout 등 여러 함수들이 std 안에 포함된 함수이기 때문이다. 하지만 사용할때마다 std::를 붙여 사용하기에는 귀찮기 때문에 우리는 using namespace std를 써서 std라는 이름을 안붙이고 함수들을 호출한다.
이제 쓰면 안되는 이유에 대해서 보자. 만약 두 개의 라이브러리를 사용한다고 하자. std1, std2
using namespace std1;
using namespace std2;
그러면 우리는 위처럼 작성을 할 것이다. 이때 만약 std1과 std2 안에 dfs()라는 함수가 들어있다고 가정을 하면 dfs()함수를 불러올때 충돌이 일어나게 된다(namespace에서 import). 그러면 수정을 해야하게 된다. 이러한 문제점 때문에 사용하면 안된다고 하는것 같다.
다음으로 std::를 사용하면 좋은점이다.
1. 이름 중복 제거
2. 가독성 향상
'Coding > 궁금한 것들' 카테고리의 다른 글
'\n' vs endl (0) | 2019.12.11 |
---|---|
c++ 띄어쓰기를 포함한 문자열 입력 (0) | 2019.10.16 |
c++ memset을 피해야하는 이유? (0) | 2019.09.30 |
string을 int로, int를 string으로 (0) | 2019.09.29 |
삼항 연산자 (0) | 2019.09.10 |