Advertisement
Guest User

OOP_8 VirtualFunctions

a guest
Sep 1st, 2015
275
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.65 KB | None | 0 0
  1. /*
  2. შექმენით საბაზისო კლასი ტრანსპორტი.  ველებით:
  3. მგზავრების რაოდენობა, პასი
  4. ამ კლასისთვის შექმენით სუფთა ვირტუალური ფუნქცია maxAmount, რომელიც
  5. დაითვლის მაქსიმუმ რა თანხას გამოიმუშავებს ტრანპორტი ერთი მიმართულებით.
  6.  
  7. შექმენით მემკვიდრე კლასები Train, Bus .
  8. მოახდინეთ maxAmount ფუნქციის გადატვირთვა შესაბამისი კლასებისთვის.
  9. ასევე გადატვირთეთ print ფუნქცია
  10.  
  11. შექმენით ორ ელემენტიანი მასივი ტრანპორტის კლასის მიმთითებლით
  12. და პირველი მიუთითებდეს Train ობიექტს, ხოლო მეორე მიუთითებდეს
  13. Bus ობიექტზე. მოახდინეთ მასივის თითოეული ელემენტისთვის ინფორმაციის
  14. ბეჭდვა
  15. */
  16.  
  17. #include <iostream>
  18.  
  19. using namespace std;
  20.  
  21. class Vehicle{
  22. protected:
  23.     int passengers;
  24.     double price;
  25. public:
  26.     Vehicle();
  27.     Vehicle(int ps, double pr);
  28.     virtual void print() = 0;
  29.     virtual double maxAmount() = 0;
  30. };
  31.  
  32. Vehicle::Vehicle(){
  33.     passengers = 0;
  34.     price = 0;
  35. };
  36.  
  37. Vehicle::Vehicle(int ps, double pr){
  38.     passengers = ps;
  39.     price = pr;
  40. }
  41.  
  42. class Train:public Vehicle{
  43. public:
  44.     Train(int ps, double pr);
  45.     void print();
  46.     double maxAmount();
  47. };
  48.  
  49. Train::Train(int ps, double pr):Vehicle(ps,pr){
  50.  
  51. }
  52.  
  53. void Train::print(){
  54.     cout << "This is train. Ticket price per person is " << price;
  55. }
  56.  
  57. double Train::maxAmount(){
  58.     return price*passengers;
  59. }
  60.  
  61. class Bus :public Vehicle{
  62. public:
  63.     Bus(int ps, double pr);
  64.     void print();
  65.     double maxAmount();
  66. };
  67.  
  68.  
  69. Bus::Bus(int ps, double pr):Vehicle(ps,pr){
  70. }
  71.  
  72. void Bus::print(){
  73.     cout << "This is Bus. Ticket price per person is " << price;
  74. }
  75.  
  76. double Bus::maxAmount(){
  77.     return price*passengers;
  78. }
  79.  
  80.  
  81. int main(){
  82.  
  83.     Vehicle* vehicles[2];
  84.  
  85.     Train tr(220,23.5);
  86.  
  87.     vehicles[0] = &tr;
  88.  
  89.     Bus bus(50,17);
  90.     vehicles[1] = &bus;
  91.    
  92.     for (int i = 0; i < 2; i++){
  93.         vehicles[i]->print();
  94.         cout << " Max Amount is " << vehicles[i]->maxAmount();
  95.         cout << endl << endl;
  96.     }
  97.    
  98.  
  99.  
  100.     return 0;
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement