Обрабатывать отображение uint8 как int автоматически для ostream - PullRequest
3 голосов
/ 25 мая 2011

У меня есть класс с членом типа uint8, и когда я пытаюсь вывести его в ostream, он отображается в виде представления char.Я бы предпочел, чтобы он представлял int, поэтому мне нужно каждый раз использовать static_cast (myStruct.member), что немного громоздко и потенциально подвержено ошибкам.Есть идеи?

Ответы [ 2 ]

1 голос
/ 25 мая 2011

Реализуйте operator<< в своем классе и определите приведение там. Мне кажется, что вы нарушаете инкапсуляцию.

0 голосов
/ 25 мая 2011
class X {
  uint8 a;
  int get_int () const { return static_cast<int>(a); }
};

Мы используем метод обертки, который инкапсулирует отливку внутри.Использование:

cout << obj.get_int();
...