• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed protected dziedziczenie

Aruba Cloud PRO i VPS, Openstack, VMWare, MS Hyper-V
0 głosów
194 wizyt
pytanie zadane 22 września 2019 w C i C++ przez niezalogowany
zamknięte 13 listopada 2019
Miałem inny problem, bo program nie widział klasy mimo iż pliki są rozmieszczone jak http://wklejto.pl/766465 (tak jakby klasy odległość - zadanie klasy tak jakby funkcji lub klasy wew. ) mimo że sprawdziłem ścieżki, ale za to działał poprawnie (dziedziczenie działało) .

Ten nie działa poprawnie nie widzi pól protected mimo dziedziczenia w publicznych jest ok.

1) gdzie tu jest błąd logiczny w rozumieniu dziedziczenia?

2) Jak się dziedziczy po klasach które nie mają konstruktora domyślnego?

3) Jak znaleźć błąd, w tym innym problemie, z reguły jak mi się c::b posypie to muszę przekopiować cały projekt od początku. Dopiero błąd znika.
komentarz zamknięcia: rozwiązane
komentarz 23 września 2019 przez niezalogowany

Na początku chciałbym przepościć, że czasami odpowiadam z dużym, opóźnieniem, są sprawy pilne niekonieczne ważne(głownie z dala od kompa), i tak wychodzi.

@j23, 

Te przykłady, pojawiły się bo mam jakiś problem z projektem. A to były takie do sprawdzenia. Łatwiej rozwiązać po kawałkach problem, jak się pojawi eliminując kolejne przyczyny.

Może tu akurat nie ma sensu (ale zawsze o deklarację dwóch zmiennych mniej). (Bardziej mnie martwi że poświęciłem tyle czasu i nie zrozumiałem obiektówki.)

A jak robię klasę pojemnik to już tak nie do końca.Wczytać z pliku i do pliku, sprawdzić coutem czy wszystko ok,

np: void cout() {for(auto x:pojemnik) cout<<x;} niby nie dużo pisania, ale tak dla każdej klasy to trochę przeszkadza. Łatwiej obj.cout().

@tzk. Ok pisałem na wstępie, że nie rozumiem dlaczego. Nie jak problem obejść, bo to co chcę to już bym dawno proceduralnie napisał i bym zapomniał o temacie. Po prostu jak nie zrozumiem to na drugi dzień już nie pamiętam. Ale jak zrozumiem to po 20latach nie zapominam, ot tak uroda.

komentarz 23 września 2019 przez j23 Mędrzec (190,220 p.)

ale zawsze o deklarację dwóch zmiennych mniej

Kod ma być czytelny, a nie oszczędny w deklaracjach. Prostokąt nie jest punktem, i dlatego nie powinien dziedziczyć po klasie punkt. Tu zamiast dziedziczenia wystarczy zwykła kompozycja.

 

Jeszcze jedna rzecz:

delete A,B,C,T,O;

Ten zapis jest nieprawidłowy (acz składniowo poprawny). Tylko A będzie zwolnione, reszta pozostanie nietknięta. Użyj std::unique_ptr.

komentarz 23 września 2019 przez niezalogowany
edycja 23 września 2019

Jeszcze jedna rzecz:

Ok, dzięki nie wiedziałem o delete, i nawet nie sprawdziłem dla przekory.

Kod ma być czytelny

to kurcze znowu mnie czeka poprawianie, bo wpadłe ma genialny pomysł zamiast *sec, *mat zrobić *ptr w bazowej i ile mniej pisania jak to jakiś typ złożony.

Edit czyli jak referencja czy wskaźnik (jako argument) do klasy to nie dziedziczenie po tej klasie, tak jest bezproblemowo. Tak?

komentarz 24 września 2019 przez j23 Mędrzec (190,220 p.)
edycja 24 września 2019 przez j23
class trojkat {
public:
    trojkat() = default;

    trojkat(const punkt& A, const punkt& B, const punkt& C)
        : mA(A)
        , mB(B)
        , mC(C)

    { }

protected:
    punkt mA;
    punkt mB;
    punkt mC;
};

 

komentarz 24 września 2019 przez niezalogowany
a w sumie wszystko mam tak samo z tym że wcześniej (bez listy) wszystko działało a teraz nie widzi klasy pewnie jaki błąd z kompilatorem i linkowaniem.

Ok dzięki  za rozmowę.

Trudno chciałem napisać ładny program. A może byle jak, aby działało a później jak się będzie mi nudziło to sobie przerabiam.

Podobne pytania

0 głosów
1 odpowiedź 135 wizyt
pytanie zadane 23 stycznia 2016 w C i C++ przez Dash Nałogowiec (29,680 p.)
0 głosów
0 odpowiedzi 102 wizyt
pytanie zadane 20 maja 2017 w JavaScript przez Sławek Obywatel (1,280 p.)
0 głosów
1 odpowiedź 144 wizyt

90,818 zapytań

139,493 odpowiedzi

313,550 komentarzy

60,311 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...