1
問題如何實現自定義類似ostringstream的格式化狀態?
假設我有一類這樣的:
enum eOutputMode
{
DECIMAL,
BILLS_AND_COINS
};
class BankAccount
{
ssize_t m_dollars;
unsigned short m_pennies;
public:
friend ostream& operator<<(ostream& os, BankAccount const& rhs)
{
// switch on eOutputMode : output in DECIMAL or in BILLS_AND_COINS
return os;
}
};
問題
如何修改上面的代碼,這樣我可以這樣稱呼它?
BankAccount ba;
os << eOutputMode::DECIMAL << ba << "\n";
os << eOutputMode::BILLS_AND_COINS << ba << "\n";
換句話說,如何以及我應該在哪裏捕捉的輸出狀態?