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

question-closed protected dziedziczenie

VPS Starter Arubacloud
0 głosów
232 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 (194,920 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 (194,920 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ź 155 wizyt
pytanie zadane 23 stycznia 2016 w C i C++ przez Dash Nałogowiec (29,650 p.)
0 głosów
0 odpowiedzi 121 wizyt
pytanie zadane 20 maja 2017 w JavaScript przez Sławek Obywatel (1,270 p.)
0 głosów
1 odpowiedź 168 wizyt

92,304 zapytań

141,107 odpowiedzi

318,581 komentarzy

61,756 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...