2017-03-28 14 views
1

면책 조항 : 저는 완전한 C++ 초보자입니다.이 질문에 대한 비슷한 대답이 있으면 놓친 것일 수 있으므로 직접 질문 해주십시오. 이론의 길. 하나의 파일에 모든 개체의 목록을 인쇄 할 수 있도록 내가, 그것은 ostream을 변경합니다 가정입니다std :: ostream에 입력을 표시합니다.

printAllObjects(std::ostream& os); 

:

은 내가 ostream에 대한 참조를 받아들이는 방법이 있다고 가정 말하다. (내가 틀릴 수도 있습니다)

ostream에 쓰는 것을 보는 방법이 있습니까? (cout 통해 가능)?

printAllObjects(std::cout); 

이러한 유연성은 std::ostream에 대한 참조를 받아 들일 바로 그 목적이다 :

+0

당신은'printAllObjects'를 제어합니까, 아니면 제어 할 수없는 라이브러리의 일부입니까? – Tas

+0

아니요, 불행히도 우리가 제공 한 라이브러리의 일부입니다. – qasimir

답변

6

std::cout그래서 그냥 함수에 std::cout를 통과하고 당신은 무엇을 볼 수,std::ostream입니다! std::ostream베이스로부터 상속

다른 스트림 유형 1 포함

  • std::ofstream (문자열 출력)
  • std::ostringstream (파일 출력). std::cout 있다는 것은 아니다

1는 타입이다; 그렇지 않습니다. 이것은 std::ostream의 특별한 글로벌 인스턴스입니다.

+0

'std :: cout'은 제가 추정하는 대상이 아닙니까? 이것은 어쨌든 컴파일하는 것처럼 보입니다.하지만 새로운 문제로 인해 테스트를 방해하고 있습니다. 나는 그것이 성공하면, 그러나 그 동안 당신에게 돌아갈 것이다 : 고마워 (가끔) – qasimir

+0

@qasimir : 그것은 대상이다. –