2070 / C++ / Класи / Поліморфізм

 

class Cats {
  public:
    virtual void Meow() = 0;
};

 
class Cat : public Cats {
  public:
    void Meow() { cout << "meow!\n"; }
};

 
class Tiger : public Cats {
  public:
    void Meow() { cout << "MREOWWW!\n"; }
};

 
int main() {
  Cats* cat1 = new Cat();
  Cats* cat2 = new Tiger();
  Cats* cat3 = new Cat();
  Cats* cat4 = new Tiger();
  Cats* mas[] = { cat1, cat2, cat3, cat4 };
  for (int i = 0; i < 4; i++)
  {
    mas[i]->Meow();
  }
}

 

meow!
MREOWWW!
meow!
MREOWWW!

 


 
Спеціалізований поліморфізм (поліморфізм функцій)

int Sum(int a, int b) {
  return a + b;
}

 
int Sum(int a, int b, int c) {
  return a + b + c;
}

int main() {
  cout << Sum(1, 2) << endl;
  cout << Sum(1, 2, 4) << endl;
}