Portál AbcLinuxu, 10. května 2025 00:58
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.
trida.h:11: error: ‘double Trida::DatovaPolozka’ is private
Nejsem sice znalec C++, ale místo public
a private
zkus raději protected
public:
položku/metodu vidí všichniprotected:
položku/metodu vidí pouze metody této třídy a jejích potomkůprivate:
položku/metodu vidí pouze metody této třídy
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.