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 回答