Dziedziczenie i zmiana definicji funkcji przez potomka?

2013-04-19 01:29
kleofas
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 :)

edytowany 1x, ostatnio: olesio, 2016-12-13 18:26

Pozostało 580 znaków

2013-04-19 01:41
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


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2013-04-19 09:01
0

Metody wirtualne.

Pozostało 580 znaków

Liczba odpowiedzi na stronę

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