1

問題

次のようなクラスがあるとします。

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";

つまり、出力状態をどこでどのようにキャプチャすればよいのでしょうか?

4

1 に答える 1