Portál AbcLinuxu, 10. května 2025 00:58

Dotaz: Nefunguje dědičnost v C++

31.7.2006 09:41 Jiří Tomášek
Nefunguje dědičnost v C++
Přečteno: 246×
Odpovědět | Admin
Ahoj,

mám tento problém. Mám definice 2 tříd:

class Trida {...};
class Odvozena : public Trida {...};

A když v metodě Odvozené třídy použiji privátní datovou položku základní třídy, g++ hlásí:

trida.h: In member function ‘void Odvozena::metoda(double)’:
trida.h:11: error: ‘double Trida::DatovaPolozka’ is private
odvozena.cpp:17: error: within this context

Vypadá to jako by private položky nebyly zděděny. Když změním u datových položek private na public, tak to funguje, ale tak to samozřejmě nelze řešit.

Asi to bude nějaká maličkost...

Každopádně díky za reakce.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

31.7.2006 09:48 Kyosuke | skóre: 28 | blog: nalady_v_modre
Rozbalit Rozbalit vše Re: Nefunguje dědičnost v C++
Odpovědět | | Sbalit | Link | Blokovat | Admin
A co protected?
Jak moc jsou ábíčkáři inteligentní? ;-)
31.7.2006 09:49 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Nefunguje dědičnost v C++
Odpovědět | | Sbalit | Link | Blokovat | Admin
trida.h:11: error: ‘double Trida::DatovaPolozka’ is private
Nejsem sice znalec C++, ale místo public a private zkus raději protected ;-)
When your hammer is C++, everything begins to look like a thumb.
31.7.2006 09:53 Kyosuke | skóre: 28 | blog: nalady_v_modre
Rozbalit Rozbalit vše Re: Nefunguje dědičnost v C++
No právě, když na člověka čeká dědictví, bez protekce si většinou neškrtne... :-D
31.7.2006 09:59 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Nefunguje dědičnost v C++
Ovšem jenom v C++ (a podobných jazycích). Někde jsou všechny metody veřejné a onde dokonce i členské proměnné objektů ;-). Ovšem v těchto jazycích se na dědičnost tolik hrát nemusí.
When your hammer is C++, everything begins to look like a thumb.
31.7.2006 10:21 Kyosuke | skóre: 28 | blog: nalady_v_modre
Rozbalit Rozbalit vše Re: Nefunguje dědičnost v C++
Ano, jsou i státy, které nemají sbírku zákonů tlustou jako norma C++. :-D
31.7.2006 11:15 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Nefunguje dědičnost v C++
Odpovědět | | Sbalit | Link | Blokovat | Admin
elviin avatar 31.7.2006 12:49 elviin | skóre: 29 | blog: elviin | Plzeň-Praha
Rozbalit Rozbalit vše Re: Nefunguje dědičnost v C++
Jen dodam k tem metodam, ze privatni virtualni metody muzou bejt prekryty ve tride, ktera dedi, ikdyz ne primo pouzity.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.