

Polymorphism
Čau mám dotaz ohledně polymorfismu,
jaké je reálné využití. Dám příklad
#include <iostream>
using namespace std;
class Shape
{
public:
virtual float GetArea() = 0;
};
class Rectangle : public Shape
{
public:
Rectangle(float a) { this->a = a; }
float GetArea() { return a * a; }
private:
float a;
};
class Circle : public Shape
{
public:
Circle(float r) { this->r = r; }
float GetArea() { return 3.14f * r * r; }
private:
float r;
};
int main()
{
Shape *a = new Circle(1.0f);
Shape *b = new Rectangle(1.0f);
cout << a->GetArea() << endl;
cout << b->GetArea() << endl;
}
Máme tento kód, kde pomocí ukazatele na base třídu přistupujeme k metodám v odvozených třídách.Mě by zajímalo, jaký to má význam a proč se nepoužije rovnou ukazatel na odvozenou třídu, když
její jméno stejně musíme znát. Může někdo dát prosím praktický příklad nebo říct výhody, proč
se využívá zrovna tenhle přístup. Má to například nižší nároky nebo je to z jiného důvodu? Díky