Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno 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

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
V programování se sice nevyznám, ale někde sem četl, že polymorfizmus je nejlepší používat u virů. P… nový
Davča2 02.07.2014 17:58
Davča2
To je ovšem naprosto jiný polymorfismus. poslední
Wikan 02.07.2014 18:38
Wikan

Zpět do poradny Odpovědět na původní otázku Nahoru