Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Adgangsmodifikatorer i Arv | Oversigt over Arv
C++ OOP
course content

Kursusindhold

C++ OOP

C++ OOP

1. Grundlæggende OOP i C++
2. Konstruktører og Destruktører
3. Oversigt Over Indkapsling
4. Oversigt over Arv
5. Oversigt Over Polymorfi

book
Adgangsmodifikatorer i Arv

Adgangsmodifikatorer spiller en afgørende rolle i objektorienteret programmering, især ved arv. De bestemmer, hvordan medlemmer (attributter og metoder) i en basisklasse kan tilgås af afledte klasser. Forståelse af disse modifikatorer er væsentlig for at designe effektive klasser og opretholde dataindkapsling og integritet.

Adgangstyper ved arv

En klasse kan nedarves fra en anden klasse. Den afledte klasse arver medlemmer fra basisklassen, men tilgængeligheden af disse nedarvede medlemmer afhænger både af adgangsmodifikatoren, der bruges i basisklassen, og typen af 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 };

Adgangskontrol og arv – Konklusion

I objektorienteret arv er private medlemmer af en basisklasse utilgængelige for afledte klasser, hvilket beskytter dem mod ændring eller adgang. Protected medlemmer kan kun tilgås inden for subklassen, mens public medlemmer kan tilgås eksternt. Du kan eksperimentere med dette ved at bruge kodeeksemplet 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
Bemærk

Protected-medlemmer, som er tilgængelige inden for afledte og yderligere afledte klasser, fungerer som en bro mellem private og public elementer.

Konstruktører og destruktører bliver automatisk kaldt for afledte klasse objekter, hvilket sikrer korrekt initialisering og oprydning af ressourcer. For at få direkte adgang til disse elementer fra basisklassen, skal konstruktører og destruktører deklareres som public.

question mark

Hvad bestemmer, hvordan medlemmer af en basisklasse kan tilgås af en afledt klasse?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 2

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

course content

Kursusindhold

C++ OOP

C++ OOP

1. Grundlæggende OOP i C++
2. Konstruktører og Destruktører
3. Oversigt Over Indkapsling
4. Oversigt over Arv
5. Oversigt Over Polymorfi

book
Adgangsmodifikatorer i Arv

Adgangsmodifikatorer spiller en afgørende rolle i objektorienteret programmering, især ved arv. De bestemmer, hvordan medlemmer (attributter og metoder) i en basisklasse kan tilgås af afledte klasser. Forståelse af disse modifikatorer er væsentlig for at designe effektive klasser og opretholde dataindkapsling og integritet.

Adgangstyper ved arv

En klasse kan nedarves fra en anden klasse. Den afledte klasse arver medlemmer fra basisklassen, men tilgængeligheden af disse nedarvede medlemmer afhænger både af adgangsmodifikatoren, der bruges i basisklassen, og typen af 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 };

Adgangskontrol og arv – Konklusion

I objektorienteret arv er private medlemmer af en basisklasse utilgængelige for afledte klasser, hvilket beskytter dem mod ændring eller adgang. Protected medlemmer kan kun tilgås inden for subklassen, mens public medlemmer kan tilgås eksternt. Du kan eksperimentere med dette ved at bruge kodeeksemplet 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
Bemærk

Protected-medlemmer, som er tilgængelige inden for afledte og yderligere afledte klasser, fungerer som en bro mellem private og public elementer.

Konstruktører og destruktører bliver automatisk kaldt for afledte klasse objekter, hvilket sikrer korrekt initialisering og oprydning af ressourcer. For at få direkte adgang til disse elementer fra basisklassen, skal konstruktører og destruktører deklareres som public.

question mark

Hvad bestemmer, hvordan medlemmer af en basisklasse kan tilgås af en afledt klasse?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 2
some-alt