fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class Test
  5. {
  6. public:
  7. enum class Fruit
  8. {
  9. apple,
  10. banana,
  11. orange,
  12. pineapple,
  13. lemon
  14. };
  15.  
  16. friend Fruit operator++(Fruit& f)
  17. {
  18. switch (f)
  19. {
  20. case Fruit::apple: return f = Fruit::banana;
  21. case Fruit::banana: return f = Fruit::orange;
  22. case Fruit::orange: return f = Fruit::pineapple;
  23. case Fruit::pineapple: return f = Fruit::lemon;
  24. case Fruit::lemon: return f = Fruit::apple;
  25. }
  26. }
  27.  
  28. friend std::ostream& operator<<( std::ostream& os, const Fruit &fruit )
  29. {
  30. switch( fruit )
  31. {
  32. case Fruit::apple: os << "apple"; break;
  33. case Fruit::banana: os << "banana"; break;
  34. case Fruit::orange: os << "orange"; break;
  35. }
  36. return os;
  37. }
  38. };
  39.  
  40. int main() {
  41. // your code goes here
  42. Test::Fruit f = Test::Fruit::banana;
  43.  
  44. cout << ++f << endl;
  45.  
  46. return 0;
  47. }
  48.  
Success #stdin #stdout 0s 4404KB
stdin
Standard input is empty
stdout
orange