책 정리/More Exceptional C++
항목 1 : 스트림 전환(Switching Streams) ( 난이도 : 2 )
최익필
2008. 12. 19. 15:29
사실 이 항목이 왜 존재 하는지 모르겠다. "왜" 란 느낌이 팍 들게 만들었던 질문과 예제코드를 보자.
첫번째 질문, std::cin과 std::cout 은 무슨 타입인가? 코드로 보는게 더 편하니, 코드 첨부
이 코드는 <iosfwd>에서 발취한것이며, 더 자세한것은 각 코드의 클래스 템플릿이 무엇인지 알아야 가능 할 것 같다. 이 코드를 보면 알겠지만, 4, 5 라인에 istream과 ostream 을 정의하고 있는데, cin 과 cout 의 클래스이다.
두번째 질문, 자신의 입력을 그대로 출력하며, 다음의 두 가지 방법에 대해서 같은 결과를 비요주는 ECHO 프로그램을 작성 하라.
ECHO <infile >outfile
ECHO infile outfile
가장 많이 사용 되는 커맨드라인 환경에서 첫 번재, 명령어는 프로그램이 cin에서 입력 받아 cout로 출력을 보내는 것을 의미한다. 두번째 명령은 프로그램이 infile에서 입력받아 outfile에 출력을 생성하다록 지시한다.
바로 이 부분에 대해서 내가 "왜 이 항목이 존재하지?"란 생각을 하게 된다. 바로 답 코드를 보자.
그리고 그 뒤에, 컴파일 타임 다형성과 런타임 다형을 가지고 논쟁을 하고 있고, 캡슐화를 지향하는 언어를 짜야 한다고 지적을 한다. .. 하지만 정작 중요한 각 클래스에 대한 설명은.. 전무하다;;
항목 이름을 바꾸어 주었어라도 만족 했을 것을...
총평
음!