DacCum

ООП лаб 10(2)

Nov 10th, 2021
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.19 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. class transport {
  7. protected:
  8.     int number_wheels;
  9. public:
  10.     virtual void input() {
  11.         cout << "Enter number of wheels: ";
  12.         cin >> number_wheels;
  13.     }
  14.     virtual void print() {
  15.         cout << "Number of wheels: " << number_wheels << endl;
  16.     }
  17. };
  18.  
  19. class electric_transport : transport {
  20.     int battery_charge;
  21. private:
  22.     void input() {
  23.         transport::input();
  24.         cout << "Enter battery charge: ";
  25.         cin >> battery_charge;
  26.     }
  27.     void print() {
  28.         transport::print();
  29.         cout << "Battery charge: " << battery_charge << endl;
  30.     }
  31.  
  32.     friend istream& operator>> (istream&, electric_transport&);
  33.     friend ostream& operator<< (ostream&, electric_transport&);
  34. };
  35.  
  36.  
  37. istream& operator>> (istream& in, electric_transport& e_t) {
  38.     cout << "Enter number of wheels: ";
  39.     in >> e_t.number_wheels;
  40.     cout << "Enter battery charge: ";
  41.     in >> e_t.battery_charge;
  42.  
  43.     return in;
  44. }
  45.  
  46. ostream& operator<< (ostream& out, electric_transport& e_t) {
  47.     out << "Enter number of wheels: " << e_t.number_wheels << endl;
  48.     out << "Enter battery charge: " << e_t.battery_charge << endl;
  49.  
  50.     return out;
  51. }
  52.  
  53. class railway_transport : transport {
  54.     int number_carriage;
  55. private:
  56.     void input() {
  57.         transport::input();
  58.         cout << "Enter number of carriage: ";
  59.         cin >> number_carriage;
  60.     }
  61.     void print() {
  62.         transport::print();
  63.         cout << "Number of carriage: " << number_carriage << endl;
  64.     }
  65.  
  66.     friend istream& operator>> (istream&, railway_transport&);
  67.     friend ostream& operator<< (ostream&, railway_transport&);
  68. };
  69.  
  70. istream& operator>> (istream& in, railway_transport& r_t) {
  71.     cout << "Enter number of wheels: ";
  72.     in >> r_t.number_wheels;
  73.     cout << "Enter number of carriage: ";
  74.     in >> r_t.number_carriage;
  75.  
  76.     return in;
  77. }
  78.  
  79. ostream& operator<< (ostream& out, railway_transport& r_t) {
  80.     out << "Number of wheels: " << r_t.number_wheels << endl;
  81.     out << "Number of carriage: " << r_t.number_carriage << endl;
  82.  
  83.     return out;
  84. }
  85.  
  86. int main() {
  87.     transport t;
  88.     t.input();
  89.     cout << endl;
  90.     t.print();
  91.     cout << endl;
  92.  
  93.     electric_transport e_t;
  94.     cin >> e_t;
  95.     cout << endl << e_t << endl;
  96.  
  97.     railway_transport r_t;
  98.     cin >> r_t;
  99.     cout << endl << r_t << endl;
  100.  
  101.    
  102.     return 0;
  103. }
Advertisement
Add Comment
Please, Sign In to add comment