알고리즘/정리 및 오류 해결 방법

c++ 에서 using namespace 를 장려하지 않는 이유

고수트 2018. 11. 25. 13:00
반응형

string 이나 cout 등을 쓸때 앞에

std:: 를 번거롭게 쓰지않는 방법으로 상단에

using namespace std 를 쓰는것이 있다.

예를 들면

temp1 라이브러리에 fun1()

temp2 라이브러리에 fun2()

가 각각 있는경우

temp1:fun1();

temp2:fun2();

와 같은 식으로 쓰지않기위해

using namespace로 아래와 같이 선언 한뒤 바로 아래와 같이 바로 사용한다.

using namespace temp1;

using namespace temp2;


fun1();

fun2();

하지만 이를 권장 안한다는 말이 많은데 그이유는

라이브러리 2개를 호출할 때 같은 메소드가 있는 경우

temp1 라이브러리와 temp2 라이브러리 모두 

fun2() 라는 함수가 생겨버리면 fun2() 는 충돌이 나기때문에

temp1::fun2();

temp2::fun2();

와 같은 식으로 정확한 라이브러리를 언급해주어 충돌을 방지 하는 것이 좋기 때문에 추천하지않는다.

반응형