Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
uint8型のメンバーを持つクラスがあり、それをostreamに出力しようとすると、char表現として表示されます。私はそれがint表現であることを好むので、毎回static_cast(myStruct.member)を実行する必要があります。これは少し面倒で、エラーが発生しやすい可能性があります。何か案は?
クラスに実装operator<<し、そこでキャストを定義します。カプセル化に違反しているように思えます。
operator<<
class X { uint8 a; int get_int () const { return static_cast<int>(a); } };
キャストを内部にカプセル化するラッパー メソッドを使用します。使用法:
cout << obj.get_int();