Головна‎ > ‎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();
     }
}


// cat1 = new Tiger(); - можна змінити
// void Meow() override - можна вказати
// {  код  } 
// virtual void 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;
}