C++ 句柄将uint8自动显示为一个int到ostream

C++ 句柄将uint8自动显示为一个int到ostream,c++,int,ostream,C++,Int,Ostream,我有一个类型为uint8的成员的类,当我试图将其输出到ostream时,它显示为它的char表示。我更喜欢它的int表示,所以每次我都需要静态_cast(myStruct.member),这有点麻烦,而且可能容易出错。有什么想法吗?X班{ class X { uint8 a; int get_int () const { return static_cast<int>(a); } }; uint8a; int get_int()常量{return static_cast(a

我有一个类型为uint8的成员的类,当我试图将其输出到ostream时,它显示为它的char表示。我更喜欢它的int表示,所以每次我都需要静态_cast(myStruct.member),这有点麻烦,而且可能容易出错。有什么想法吗?

X班{
class X {
  uint8 a;
  int get_int () const { return static_cast<int>(a); }
};
uint8a; int get_int()常量{return static_cast(a);} };
我们使用一种包装方法,将铸件封装在内部。 用法:


cout执行
操作员有趣的问题。我不确定你能不能在考虑了这个问题之后,使
过载,我可以忽略Operator或Advice,因为我以前犯过这个错误(即使调用可能是内联的,如果
a
最好表示为
int
为什么它不是
int
呢?@ereOn,同意。但可能OP只想显示
int
格式。但如果目的只是“显示”,是不是比
int
更适合
std::string
呢?(
boost::lexical_cast
会有帮助)@ereOn-显然OP需要存储大量这些值,并且不想移动大量的0。
cout << obj.get_int();