C++에서 "using namespace std"를 *.h에 안쓰고 *.cpp에 쓰니까 에러가 나네요.
글쓴이: aeronova / 작성시간: 목, 2006/08/03 - 12:11오후
안녕하세요,
약간 이상한 것을 경험해서 왜 그런지 궁금해서 질문을 올립니다.
제가 C++로 class.h와 class.cpp로 파일을 나누어서 작성했습니다.
어디선가 얼핏 보기를 "using namespace std"를 *.cpp에 적는 것이 좋다고
본 기억이 있어서 아무생각없이 *.cpp에 적고 test겸해서 컴파일을 해 보니
도대체 이유를 알 수 없는 에러들이 생기더군요. 그래서 이것 저것 시도하다가
우연히 "using namespace std"를 그냥 *.h에 옮기니까 거짓말처럼 에러가 사라지네요.
흠.. 이유를 알 수 없네요. 혹시 아시는 분 알려주시면 감사하겠습니다.
Forums:
string으로 예를
string으로 예를 들자면
헤더 파일에 위와 같이 쓰신 거라면 아래와 같이 고치셔야 합니다.
그리고 .cpp 파일에 using namespace std; 를 쓰시면 됩니다.
답변 감사합니다.
답변 감사합니다. 말씀대로 하니까 됩니다.
근데, 헤더에 using namespace std를 굳이 쓰지 말아야 할 이유가 있는지요?
It's better to burn out than to fade away. -- Kurt Cobain.
using namespace
using namespace XXX를
header file에 쓰시면
namespace가 꼬일 염려가 있읍니다.
예를 들면
header.h에서 using namespace std;를 선언했읍니다.
string.h에서
string.cc에서
하면 이름이 충돌해서 컴파일 안됩니다.
__________________________________
Less is More (Robert Browning)
___________________________________
Less is More (Robert Browning)
댓글 달기