Tilgangsmodifikatorer i Arv
Tilgangsmodifikatorer spiller en avgjørende rolle i objektorientert programmering, spesielt ved arv. De bestemmer hvordan medlemmene (attributter og metoder) i en baseklasse kan nås av avledede klasser. Å forstå disse modifikatorene er essensielt for å designe effektive klasser og opprettholde innkapsling og dataintegritet.
Tilgangstyper ved arv
En klasse kan avledes fra en annen klasse. Den avledede klassen arver medlemmer fra baseklassen, men tilgjengeligheten til disse arvede medlemmene avhenger både av tilgangsmodifikatoren brukt i baseklassen og typen arv.
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
12345class Derived : public Base { // publicMember is public // protectedMember is protected // privateMember is not accessible };
Tilgangskontroll og arv – konklusjon
I objektorientert arv er private
-medlemmer i en baseklasse utilgjengelige for avledede klasser, noe som beskytter dem mot endring eller innhenting. Protected
-medlemmer kan kun nås innenfor subklassen, mens public
-medlemmer kan nås eksternt. Du kan eksperimentere med dette ved å bruke kodeeksempelet nedenfor.
main.cpp
1234567891011121314151617181920class 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
-medlemmer, tilgjengelige innenfor avledede og videre avledede klasser, fungerer som en bro mellom private
og public
elementer.
Konstruktører og destruktører blir automatisk kalt for objekter av avledede klasser, noe som sikrer korrekt initialisering og opprydding av ressurser. For å få direkte tilgang til disse elementene i basisklassen, må konstruktører og destruktører deklareres som public
.
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Awesome!
Completion rate improved to 3.13
Tilgangsmodifikatorer i Arv
Sveip for å vise menyen
Tilgangsmodifikatorer spiller en avgjørende rolle i objektorientert programmering, spesielt ved arv. De bestemmer hvordan medlemmene (attributter og metoder) i en baseklasse kan nås av avledede klasser. Å forstå disse modifikatorene er essensielt for å designe effektive klasser og opprettholde innkapsling og dataintegritet.
Tilgangstyper ved arv
En klasse kan avledes fra en annen klasse. Den avledede klassen arver medlemmer fra baseklassen, men tilgjengeligheten til disse arvede medlemmene avhenger både av tilgangsmodifikatoren brukt i baseklassen og typen arv.
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
12345class Derived : public Base { // publicMember is public // protectedMember is protected // privateMember is not accessible };
Tilgangskontroll og arv – konklusjon
I objektorientert arv er private
-medlemmer i en baseklasse utilgjengelige for avledede klasser, noe som beskytter dem mot endring eller innhenting. Protected
-medlemmer kan kun nås innenfor subklassen, mens public
-medlemmer kan nås eksternt. Du kan eksperimentere med dette ved å bruke kodeeksempelet nedenfor.
main.cpp
1234567891011121314151617181920class 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
-medlemmer, tilgjengelige innenfor avledede og videre avledede klasser, fungerer som en bro mellom private
og public
elementer.
Konstruktører og destruktører blir automatisk kalt for objekter av avledede klasser, noe som sikrer korrekt initialisering og opprydding av ressurser. For å få direkte tilgang til disse elementene i basisklassen, må konstruktører og destruktører deklareres som public
.
Takk for tilbakemeldingene dine!