Wielokrotne wykorzystanie kodu w kontekście dziedziczenia

Odpowiedz Nowy wątek
2015-01-12 23:09
0

Witam ponownie.

Czytałem już masę artykułów ale dalej nie rozumiem na czym polega to wielokrotne wykorzystanie kodu. Czy ktoś mógłby mi podać jakiś sensowny przykład, który to wykorzystuje?

Dziękuje z góry :)

Pytanie być może banalne, ale nigdzie w internecie nie znalazłem żadnych konkretnych przykładów użycia.

Pozdrawiam

Pozostało 580 znaków

2015-01-12 23:14
0

Ile razy wykorzystałem ten kod lub jego pochodne ....: http://4programmers.net/Forum/C_i_C++/244988-ponowny_wybor_opcji_instrukcja_switch?p=1100492#id1100492


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

2015-01-12 23:17
0

z tym że nic tam nie ma o klasach w C++... ani o dziedziczeniu

W pytaniu nic nie było o dziedziczeniu, tytuły są dla późniejszych poszukiwań przez nekrofilów :-) - _13th_Dragon 2015-01-12 23:23

Pozostało 580 znaków

2015-01-13 22:34
0

miło że ktoś odpowiedział :(

Pozostało 580 znaków

2015-01-13 22:41
1
class base
  {
   protected:
   virtual ostream &out(ostream &s)const=0;
  };
ostream &operator<<(ostream &s,const base &b) { return b.out(s); }

Dalej rozgałęziasz klasę poprzez dziedziczenie, nadpisujesz metodę out i już możesz wrzucać obiekt do dowolnego strumienia.
np:

class point:base
  {
   public:
   double x,y;
   point(double x,double y):x(x),y(y) {}
   protected:
   virtual ostream &out(ostream &s)const { return s<<x<<','<<y; }
  };
...
point p(3,4);
cout<<p<<endl;

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

2015-01-13 22:48
0

Do czego są metody czysto wirtualne to wiem :), klasy abstrakcyjne także, ale gdzie tu jest wielokrotne użycie kodu? W którym miejscu? Wiem, że pytanie może być banalne ale próbuję to zrozumieć już dłuższy czas i dalej nie wiem.

Pozostało 580 znaków

2015-01-13 22:55
0

Nie masz przeciążenia operatora przesunięcia dla klasy point, oraz dla każdej innej pochodzącej od base owszem w tym przypadku nie dużo tego kodu ale na tej samej zasadzie możesz napisać cokolwiek.


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

2015-01-13 23:00
0

tu masz przykład
http://www.tutorialspoint.com/cplusplus/cpp_inheritance.htm
Dzięki temu, że pola width oraz height są zadeklarowane w klasie bazowej(Shape) nie musiusz ich deklarować w klasie pochodnej(np. Rectangle) bo one te pola już posiadają.
Klasę Shape może rozszerzać dowoli(aż skończą Ci się pomysły na figury:))
Czy to jest użycie wielokrotne kodu klasy Shape?

Pozostało 580 znaków

2015-01-14 09:11
1

pokoduj to zrozumiesz, samo czytanie g.. Ci da

Pozostało 580 znaków

2015-01-14 15:19
0

Na hasło "wielokrotne użycie kodu" połączone z dziedziczeniem od razu kojarzy mi się wzorzec strategia. Prosty wzorzec, używany przez programistów nawet bez wiedzy że ta technika jest opisana jakimś wzorcem.

EDIT
Wzorzec dekorator też by pasował pod wielokrotne użycie kodu + dziedziczenie. No ale często składanie obiektów też ma tu miejsce więc nie wiem czy wpasowuje się w Twoje pytanie ;)

edytowany 1x, ostatnio: several, 2015-01-14 15:26

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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