cerr객체 사용시 header including에 관한 질문
글쓴이: dummytoguru / 작성시간: 월, 2007/03/26 - 8:59오후
현재 Accelerated C++과 Essential C++을 같이 보며 공부하고 있는 학생입니다.
책에 있는 예제코드를 쳐보고 실행해보고 또 약간 변경해보면서 문법을 익히고 있는데요, cerr 객체 사용에 관해 의문이 들어 질문드립니다.
아래는 피보나치 수열을 정적 지역 변수를 사용해서 계산하는 함수입니다.
#include "fibon_seq.h" // 함수의 선언이 들어있습니다. #include <iostream> // ??? using std::vector; using std::cerr; const vector<int>* fibon_seq( int size) { const int max_size = 1024; static vector<int> elems; if ( size <= 0 || size > 1024) { cerr << "fibon_seq() : oops : invalid size :" << size << " -- cannot fulfill request.\n"; return 0; } for ( size_t ix = elems.size() ; ix < size ; ++ix ) { if ( ix == 0 || ix == 1) elems.push_back( 1 ); else elems.push_back( elems[ix-1] + elems[ix-2] ); } return &elems; }
cerr은 ostream 객체라고 알고 있습니다. 그래서 처음에 #include 대신 #include 을 쓰고 컴파일을 했는데
아래와 같이 오류 3개가 발생했습니다.
error C2039: 'cerr' : is not a member of 'std' error C2873: 'cerr' : symbol cannot be used in a using-declaration error C2065: 'cerr' : undeclared identifier
#include 을 #include 으로 변경하자 문제는 해결됐는데 왜 그렇게 된건지는 잘 모르겠어요.
iostream은 ostream과 istream의 모든 멤버를 상속받은 클래스고 함수에서 입력에 관해 cin 객체를 사용하지 않았으니 ostream 헤더만
include시켜도 돌아가야 되는 것 아닌가요?
Forums:
댓글 달기