Kurssisisältö
C++ OOP
C++ OOP
Pääsyn Määrittäjät Periytymisessä
Pääsyn määrittäjät ovat keskeisessä roolissa olio-ohjelmoinnissa, erityisesti periytymisessä. Ne määrittävät, miten kantaluokan jäsenet (attribuutit ja metodit) ovat johdettujen luokkien käytettävissä. Näiden määrittäjien ymmärtäminen on olennaista tehokkaiden luokkien suunnittelussa sekä tietojen kapseloinnin ja eheyden ylläpitämisessä.
Periytymisen pääsymuodot
Luokka voidaan johtaa toisesta luokasta. Johdettu luokka perii jäsenet kantaluokasta, mutta näiden perittyjen jäsenten saavutettavuus riippuu sekä kantaluokan käyttämästä pääsyn määrittäjästä että periytymisen tyypistä.
Base Class public | Base Class protected | Base Class private | |
---|---|---|---|
public | Public in Derived Class | Protected in Derived Class | Not Accessible |
protected | Protected in Derived Class | Protected in Derived Class | Not Accessible |
private | Private in Derived Class | Private in Derived Class | Not Accessible |
public.cpp
protected.cpp
private.cpp
class Derived : public Base { // publicMember is public // protectedMember is protected // privateMember is not accessible };
Pääsynhallinta ja perinnän yhteenveto
Oliopohjaisessa perinnässä kantaluokan private
-jäsenet eivät ole johdettujen luokkien käytettävissä, mikä suojaa niitä muokkaukselta tai haulta. Protected
-jäsenet ovat käytettävissä vain aliluokassa, kun taas public
-jäsenet ovat käytettävissä ulkoisesti. Voit kokeilla tätä alla olevalla koodiesimerkillä.
main.cpp
class Base { public: int publicAttribute; protected: int protectedAttribute; private: int privateAttribute; }; class PublicDerived : public Base {}; class ProtectedDerived : protected Base {}; class PrivateDerived : private Base {}; int main() { PublicDerived obj1; ProtectedDerived obj2; PrivateDerived obj3; }
Protected
-jäsenet, jotka ovat käytettävissä johdetuissa ja edelleen johdetuissa luokissa, toimivat siltana private
- ja public
-elementtien välillä.
Konstruktoreita ja destruktoreita kutsutaan automaattisesti johdetuille luokkaolioille, mikä varmistaa resurssien oikean alustuksen ja vapautuksen. Näihin kantaluokan elementteihin pääsee suoraan käsiksi vain, jos konstruktorit ja destruktorit on määritelty public
-nä.
Kiitos palautteestasi!