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;
}