Dziedziczenie i zmiana definicji funkcji przez potomka?

0

Witam.
Chodzi o to że mam kilka klas powiedzmy klasaA, klasaB, klasaC i klasaD
teraz tak klasaC i klasa D dziedziczą z klasyB
a w klasieA jest vector<klasaB*>
i teraz klasieB jest sobie tam jakaś metoda()
jest ona wywoływana w klasieA vector->metoda()
ale każda klasa potomna chce mieć własną definicję tej metody bo np: w klasieC podtrzebne jest tam operacja na x,y,z a w klasieD tylko na x.

Mam nadzieję że mnie rozumiecie xd
Teraz nie mam pojęcia jak coś takiego zrobić i czy jest to w ogóle możliwe ?
Bo dotychczas miałem osobny kontener na każdą klasę potomną po B ale to nie jest chyba najładniejsze rozwiązanie :(

Proszę o pomoc :)

0
#include <iostream>
using namespace std;
 
struct B { virtual void metoda()=0; };
struct C:public B { virtual void metoda() { cout<<"C"<<endl; } };
struct D:public B { virtual void metoda() { cout<<"D"<<endl; } };
 
int main()
  {
   B *tb[]={new C,new D};
   for(size_t i=0;i<sizeof(tb)/sizeof(*tb);++i) tb[i]->metoda();
   return 0;
  }

http://ideone.com/awH2tW

0

Metody wirtualne.

1 użytkowników online, w tym zalogowanych: 0, gości: 1