Advertisement
Guest User

Abstract class

a guest
Apr 4th, 2020
331
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.25 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. /* Podejście polimorficzne, mądre i dobre: */
  4.  
  5. class Human
  6. {
  7.     private:
  8.         std::string name;
  9.     public:
  10.         Human() {};
  11.         Human(std::string name) : name(name) {}
  12.         virtual void sayHi() { std::cout << "Hello from Human!" << std::endl; }
  13.         virtual void sayIdentity() = 0;
  14.        
  15.     /*  ^^^^^^^ Jedyna zmiana */
  16. };
  17.  
  18. class Man : public Human
  19. {
  20.     public:
  21.         Man() {};
  22.         Man(std::string name) : Human(name) {}
  23.         void sayIdentity() { std::cout << "I'm a Man" << std::endl; }
  24.         virtual void sayHi() { std::cout << "Hello from Man!" << std::endl; }
  25.    
  26. };
  27.  
  28. class Woman : public Human
  29. {
  30.     public:
  31.         Woman() {};
  32.         Woman(std::string name) : Human(name) {}
  33.         void sayIdentity() { std::cout << "I'm a Woman" << std::endl; }
  34.         virtual void sayHi() { std::cout << "Hello from Woman!" << std::endl; }
  35.    
  36. };
  37.  
  38.  
  39.  
  40. int main()
  41. {
  42.  
  43.    
  44.     Human* h_array[10];
  45.     for (int i = 0; i < 10; ++i)
  46.     {
  47.         if (i%2==0)
  48.             h_array[i] = new Man();
  49.         else
  50.             h_array[i] = new Woman();
  51.            
  52.         h_array[i]->sayHi();
  53.         delete h_array[i];
  54.     }
  55.    
  56.     std::cout << std::endl;
  57.    
  58.     return 0;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement