Dziedziczenie - Usterka konstruktora

0

Witam serdecznie!!

Problem :

Posiadam takowe dziedziczenie : Figura - > Kwadrat -> Prostokat.

Czy jest jakiś sposób, aby w trakcie utworzenia obiektu Prostokat, nie uaktywniał się konstruktor klasy "Kwadrat" ?
Przeszkadza o tyle, że wyświetla on pewną wiadomość;

1

Po pierwsze zwykle nie wrzuca się do hierarchii dziedziczenia kwadratu i prostokąta razem bo z punktu widzenia programowania nie są one pochodnymi klasami. Po drugie czemu u ciebie każdy prostokąt jest kwadratem? o_O Po trzecie konstruktor nie powinien niczego wyświetlać.

0
Shalom napisał(a):

Po pierwsze zwykle nie wrzuca się do hierarchii dziedziczenia kwadratu i prostokąta razem bo z punktu widzenia programowania nie są one pochodnymi klasami. Po drugie czemu u ciebie każdy prostokąt jest kwadratem? o_O Po trzecie konstruktor nie powinien niczego wyświetlać.

  1. Racja, ja po prostu tworzę przykładowe programy do nauki, aby sprawdzić jak się posługiwać językiem c++, także przepraszam za pewnie wiele bzdur i nieścisłości. Po prostu
    chcę skorzystać z takiego dziedziczenia, jak podałęm.
  2. Konstruktor nie powinien niczego wyświetlać w sensie, że mam coś źle w programie, czy nie praktykuje się aby cokolwiek wyświetlał ?
0

Nie praktykuje się ;)

0

Konstruktor jak już powinien tylko logować niektóre rzeczy, a i to tylko w trybie debug. Więc tak, konstruktor nie ma nic wyświetlać, bo on konstruuje obiekt i nie ma zawierać żadnej logiki.

0

Dziękuje za odpowiedz.
W moim przypadku konstruktor pobierał dane co do
długości boków figury i w takim razie zmienie to rozwiązanie.

W jaki sposób najlepiej pobierać takie dane, aby było to rozwiązane poprawnie?

1

Z dziedziczeniem to trochę jak szukaniem dziewczyny. Jak bierzesz to całą, ze wszystkimi zaletami i wadami. Owszem, na cechy zewnętrzne (długość włosów, ubiór - metody wirtualne) możesz w miarę bezboleśnie wpłynąć, ale próba zmiany drobnych cech charakteru (spóźnialstwo - przesłanianie niewirtualnych metod) to już ból tyłka.
A o zmianie fundamentalnych cech (światopogląd - konstruktory) zapomnij, jak się nie podobają to nie bierz.

0

Te klasy nie powinny pobierać danych z konsoli. Powinieneś dane pobrać wcześniej i przekazać na parametrach konstruktora.

Dziedziczenie masz spaprane. Jeżeli już chcesz mieć kwadrat w hierarchii to powinno być tak:
Figura -> Prostokąt -> Kwadrat
jako że kwadrat jest to prostokąt foremny, a u ciebie prostokąt to nieforemny kwadrat ;)

0
Sarrus napisał(a):

Te klasy nie powinny pobierać danych z konsoli. Powinieneś dane pobrać wcześniej i przekazać na parametrach konstruktora.

Dziedziczenie masz spaprane. Jeżeli już chcesz mieć kwadrat w hierarchii to powinno być tak:
Figura -> Prostokąt -> Kwadrat
jako że kwadrat jest to prostokąt foremny, a u ciebie prostokąt to nieforemny kwadrat ;)

Dziękuje !

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