Advertisement
Guest User

Untitled

a guest
Dec 11th, 2019
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.05 KB | None | 0 0
  1. //Game.cpp
  2. #include "Game.h"
  3. #include "String.h"
  4.  
  5. // перегрузка оператора присваивания
  6. Game& Game::operator= (const Game& ob) // оператор присваивания
  7. {
  8.     title_ = ob.title_;
  9.     genre_ = ob.genre_;
  10.     developer_ = ob.developer_;
  11.     date_ = ob.date_;
  12.     rating_ = ob.rating_;
  13.     return *this;
  14. }
  15.  
  16. // перегрузка бинарных операторов
  17. Game Game::operator+ (unsigned int value)
  18. {
  19.     rating_ += value;
  20.     return *this;
  21. }
  22. Game Game::operator- (unsigned int value)
  23. {
  24.     rating_ -= value;
  25.     return *this;
  26. }
  27. Game Game::operator+ (const Game& ob)
  28. {
  29.     genre_ = genre_ + "-" + ob.genre_;
  30.     title_= title_ + " Modded";
  31.     return *this;
  32. }
  33.  
  34. // перегрузка операторов отношения
  35. bool Game::operator== (const Game& ob) const
  36. {
  37.     return (rating_ == ob.rating_);
  38. }
  39. bool Game::operator> (const Game& ob) const
  40. {
  41.     return (rating_ > ob.rating_);
  42. }
  43. bool Game::operator< (const Game& ob) const
  44. {
  45.     return (rating_ < ob.rating_);
  46. }
  47. bool Game::operator>= (const Game& ob) const
  48. {
  49.     return (rating_ >= ob.rating_);
  50. }
  51. bool Game::operator<= (const Game& ob) const
  52. {
  53.     return (rating_ <= ob.rating_);
  54. }
  55.  
  56. // перегрузка операторов инкремента/декремента
  57. Game& Game::operator++()
  58. {
  59.     ++rating_;
  60.     return *this;
  61. }
  62. Game& Game::operator--()
  63. {
  64.     --rating_;
  65.     return *this;
  66. }
  67.  
  68. // перегрузка операторов ввода/вывода как дружественные функции
  69. ostream& operator<< (ostream& out, const Game& ob)
  70. {
  71.     out << "|";
  72.     out.setf(ios::left);
  73.     out.width(40);
  74.     out << ob.title_ << '|';
  75.     out.width(26);
  76.     out << ob.genre_ << '|';
  77.     out.width(29);
  78.     out << ob.developer_ << '|';
  79.     out.width(12);
  80.     out << ob.date_ << '|';
  81.     out.width(4);
  82.     out << ob.rating_ << '|';
  83.     return out;
  84. }
  85. istream& operator>> (istream& in, Game& ob)
  86. {
  87.     in >> ob.title_;
  88.     in >> ob.genre_;
  89.     in >> ob.developer_;
  90.     in >> ob.date_;
  91.     in >> ob.rating_;
  92.     return in;
  93. }
  94.  
  95. //методы
  96. String Game::getTitle() const { return title_; }
  97. String Game::getGenre() const { return genre_; }
  98. String Game::getDeveloper() const { return developer_; }
  99. String Game::getDate() const { return date_; }
  100. unsigned int Game::getRating() const { return rating_; }
  101.  
  102. // конструкторы/деструктор
  103. // конструктор без параметров
  104. Game::Game()
  105.     : title_("N/A"), genre_("N/A"), developer_("N/A"), date_("XX.XX.XXXX"), rating_(0) {}
  106. // конструктор c параметрами
  107. Game::Game(String title, String genre, String developer, String date, unsigned int rating)
  108.     : title_(title), genre_(genre), developer_(developer), date_(date), rating_(rating) {}
  109. // конструктор копирования средней оценки
  110. Game::Game(unsigned int rating)
  111.     : rating_(rating) {}
  112. // конструктор копирования
  113. Game::Game(const Game& ob)
  114.     : title_(ob.title_), genre_(ob.genre_), developer_(ob.developer_),
  115.     date_(ob.date_), rating_(ob.rating_) {}
  116. //деструктор
  117. Game::~Game() {}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement