c++의 cout<<와 endl을 활성화/비활성화 시키고 싶은데요
글쓴이: sedolius / 작성시간: 수, 2012/06/20 - 5:51오후
c언어에서는 printf 출력 함수를
#if defined .....
#define myprint printf
#else
#define myprint
#endif
이런 식으로 출력할지 말지 지정해서 썼는데
c++의 cout객체를
필요할때는 메시지를 출력하고 필요없을때는 출력하지 않게 사용할 방법 아시는 분 계세요?
cout<< 연산자를 오버로딩 해야 하는 건지
상속받아서 재정의 하는지
c언어에서 처럼 매크로로 my_cout을 선언할 수 있는지
아이고 잘 모르겠어요
조언 부탁드립니다.
Forums:
같지 않나요?
#ifdef
#else
#endif
만약 이게 싫다면. 그냥 if문 쓰셔도 되요.
if( out == true )
{
cout << "어쩌구 저쩌구 궁시렁 궁시렁";
}
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
이미 오버로딩된 함수를 다시 오버로딩하면 함수의
이미 오버로딩된 함수를 다시 오버로딩하면 함수의 재정의이기 때문에 문제가 발생합니다.
C++스타일로 만들고 싶은거라면 자신만의 입출력 클래스를 만들어서 쓰는게 좋아 보입니다.
예를 들면,
이런식으로 구현해서 Output() << 1; 이렇게 이용할 수 있을 겁니다.
전역객체를 선언해둬도 되고, m_enabled를 정적멤버로 할지 안할지도 뭐 용도에 따라서 적당한 걸로 쓰심될테구요.
적당히 응용하면 자동적으로 << 을 이용한 출력이 끝났을 때(;를 만났을때) 줄바꿈이 되게 만들 수도 있습니다.
댓글 달기