3

uint8型のメンバーを持つクラスがあり、それをostreamに出力しようとすると、char表現として表示されます。私はそれがint表現であることを好むので、毎回static_cast(myStruct.member)を実行する必要があります。これは少し面倒で、エラーが発生しやすい可能性があります。何か案は?

4

2 に答える 2

1

クラスに実装operator<<し、そこでキャストを定義します。カプセル化に違反しているように思えます。

于 2011-05-25T13:48:20.483 に答える
0
class X {
  uint8 a;
  int get_int () const { return static_cast<int>(a); }
};

キャストを内部にカプセル化するラッパー メソッドを使用します。使用法:

cout << obj.get_int();
于 2011-05-25T13:39:55.283 に答える