Dalsi pouziti jsou funkce/procedury, ktere jako parametr deklaruji Shape a neco s nim delaji , ale ty jim posles jednou Circle, jindy Rectangle, jindy jeste neco dalsiho, co jsi dodnes ani nenapsal (treba SpaceShip)
Treba do Shape pridas metody Draw a Hide a SetOrigin a pak muzes napsat funkci
void MoveTo(Shape *a, int x, int y) {a->Hide();a->SetOrigin(x,y);a->Draw();}
a volat MoveTo(myCircle,10,20);
samozrejme ta MoveTo muze byt metodou Shape,
pak bys ji deklaroval pouze v Shape a vsechny ostatni odvozene obrazce by ji dedily a ty bys ji nepotreboval prepisovat pro kazdy typ zvlast.
Takze pak bys mel pole Shapu, tam bys dal ruzne Rectangle, Circle, SpaceShip a cokoli dalsiho a jednim cyklem bys dokazal presunout vsechny ty tvary po obrazovce ...