ostream operator << overloading시 manipulator 비슷한거 구현
글쓴이: kaeri17 / 작성시간: 일, 2008/05/18 - 2:41오후
새로 클래스를 하나 만들었습니다. 분수를 나타내는 클래스고 이름은 frac입니다
class frac{
줄줄줄
};
여기서 ostream으로 출력하고 싶습니다. 따라서 함수를 하나 만듭니다
std::ostream& operator<<(std::ostream& os, const frac& f);
이러한 꼴이 되겠죠
근데 문제가 하나 있습니다. 출력할때 사용자가 분수 혹은 계산된 소수 형태로 출력하는것을 고를 수 있게 하고 싶습니다. 표준 ostream의 hex나 oct같은 manipulator들 처럼
frac a(1, 10);
std::cout << frac_mode << a << std::endl;
이러면 a가 분수 모드로 출력되고
std::cout << dec_mode << a << std::endl;
이라고 하면 소수 모드로 출력되게 하고 싶습니다.
hex나 이런 manipulator들은 사실 함수 포인터로 ostream내에 있는 ios_base의 정보를 바꾸어 주는 함수더군요.
생각을 좀 해 보았는데 사용자 수준에서 ios_base를 직접 바꿀수는 없으니 뭔가 다른 방법이 필요 할 것 같습니다.
어찌하면 좋을까요?
Forums:
댓글 달기