Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Tilgangsmodifikatorer i Arv | Oversikt over Arv
Quizzes & Challenges
Quizzes
Challenges
/
C++ OOP

bookTilgangsmodifikatorer 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åelse av disse modifikatorene er essensielt for å utforme 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 publicBase Class protectedBase 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

public.cpp

protected.cpp

protected.cpp

private.cpp

private.cpp

copy
12345
class 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

main.cpp

copy
1234567891011121314151617181920
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; }
Note
Merk

Protected-medlemmer, tilgjengelige i 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.

question mark

Hva avgjør hvordan medlemmer av en basisklasse kan nås av en avledet klasse?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 2

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Suggested prompts:

Can you explain the difference between public, protected, and private access modifiers?

How does the type of inheritance affect member accessibility in derived classes?

Can you provide an example demonstrating these access modifiers in code?

bookTilgangsmodifikatorer 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åelse av disse modifikatorene er essensielt for å utforme 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 publicBase Class protectedBase 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

public.cpp

protected.cpp

protected.cpp

private.cpp

private.cpp

copy
12345
class 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

main.cpp

copy
1234567891011121314151617181920
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; }
Note
Merk

Protected-medlemmer, tilgjengelige i 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.

question mark

Hva avgjør hvordan medlemmer av en basisklasse kan nås av en avledet klasse?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 2
some-alt