Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Åtkomstmodifierare i Arv | Översikt av Arv
C++ OOP
course content

Kursinnehåll

C++ OOP

C++ OOP

1. Grunderna i OOP i C++
2. Konstruktorer och Destruktorer
3. Översikt Av Inkapsling
4. Översikt av Arv
5. Översikt av Polymorfism

book
Åtkomstmodifierare i Arv

Åtkomstmodifierare spelar en avgörande roll i objektorienterad programmering, särskilt vid arv. De avgör hur medlemmarna (attribut och metoder) i en basklass kan nås av underklasser. Förståelse för dessa modifierare är väsentlig för att utforma effektiva klasser samt upprätthålla inkapsling och dataintegritet.

Åtkomsttyper vid arv

En klass kan härledas från en annan klass. Den härledda klassen ärver medlemmar från basklassen, men åtkomligheten för dessa ärvda medlemmar beror både på åtkomstmodifieraren som används i basklassen och typen av 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 };

Åtkomstkontroll och arv – slutsats

Vid objektorienterat arv är private-medlemmar i en basklass otillgängliga för underklasser, vilket skyddar dem från ändring eller åtkomst. Protected-medlemmar kan endast nås inom subklassen, medan public-medlemmar kan nås externt. Du kan testa detta med kodexemplet nedan.

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
Notering

Protected-medlemmar, som är åtkomliga inom härledda och vidare härledda klasser, fungerar som en brygga mellan private och public element.

Konstruktorer och destruktorer anropas automatiskt för objekt av härledda klasser, vilket säkerställer korrekt resursinitiering och städning. För att få direkt åtkomst till dessa element i basklassen måste konstruktorer och destruktorer deklareras som public.

question mark

Vad avgör hur medlemmar i en basklass kan nås av en härledd klass?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 2

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

course content

Kursinnehåll

C++ OOP

C++ OOP

1. Grunderna i OOP i C++
2. Konstruktorer och Destruktorer
3. Översikt Av Inkapsling
4. Översikt av Arv
5. Översikt av Polymorfism

book
Åtkomstmodifierare i Arv

Åtkomstmodifierare spelar en avgörande roll i objektorienterad programmering, särskilt vid arv. De avgör hur medlemmarna (attribut och metoder) i en basklass kan nås av underklasser. Förståelse för dessa modifierare är väsentlig för att utforma effektiva klasser samt upprätthålla inkapsling och dataintegritet.

Åtkomsttyper vid arv

En klass kan härledas från en annan klass. Den härledda klassen ärver medlemmar från basklassen, men åtkomligheten för dessa ärvda medlemmar beror både på åtkomstmodifieraren som används i basklassen och typen av 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 };

Åtkomstkontroll och arv – slutsats

Vid objektorienterat arv är private-medlemmar i en basklass otillgängliga för underklasser, vilket skyddar dem från ändring eller åtkomst. Protected-medlemmar kan endast nås inom subklassen, medan public-medlemmar kan nås externt. Du kan testa detta med kodexemplet nedan.

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
Notering

Protected-medlemmar, som är åtkomliga inom härledda och vidare härledda klasser, fungerar som en brygga mellan private och public element.

Konstruktorer och destruktorer anropas automatiskt för objekt av härledda klasser, vilket säkerställer korrekt resursinitiering och städning. För att få direkt åtkomst till dessa element i basklassen måste konstruktorer och destruktorer deklareras som public.

question mark

Vad avgör hur medlemmar i en basklass kan nås av en härledd klass?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 2
some-alt