Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Adgangsmodifikator-Nøgleord | Oversigt Over Indkapsling
C++ OOP

book
Adgangsmodifikator-Nøgleord

Indkapsling opnås primært ved brug af adgangsmodifikatorer. Disse modifikatorer styrer, hvor meget adgang andre dele af programmet har til medlemmerne (både data og funktioner) i en klasse. De tre primære adgangsmodifikatorer er:

  • private: kun tilgængelig inden for samme klasse og skjult for kode uden for klassen. Dette er standardadgangsniveauet for klassens medlemmer;

  • protected: tilgængelig inden for klassen og dens afledte klasser. De er mere tilgængelige end private-medlemmer, men giver stadig et niveau af databeskyttelse;

  • public: tilgængelig fra enhver del af programmet. Selvom public-medlemmer ikke er indkapslede, er de nødvendige for at definere det interface, som klassen eksponerer for eksterne enheder.

Note
Bemærk

Adgangsmodifikatoren gælder, indtil en anden er angivet eller mødt.

main.cpp

main.cpp

copy
#include <iostream>

class Person {
public:
std::string name;
};

int main()
{
Person person;
person.name = "Bob";
std::cout << person.name;
}
12345678910111213
#include <iostream> class Person { public: std::string name; }; int main() { Person person; person.name = "Bob"; std::cout << person.name; }
Note
Bemærk

Prøv at slette eller ændre public-nøgleordet og se, hvad der sker.

På samme måde som en chauffør kan betjene en bil uden at forstå dens interne mekanik, behøver brugere og programmører ikke bekymre sig om private attributter og metoder i en klasse. Følg disse regler:

  • Hold datamedlemmer private eller protected;

  • Giv public metoder til at tilgå og ændre de private data;

  • Sørg for, at disse metoder kun udfører det, de er tiltænkt, uden at afsløre den interne logik.

En velindkapslet class bør kun eksponere det, der er nødvendigt for brugerne, og skjule dens interne tilstand og implementeringsdetaljer.

question mark

Hvad sker der, hvis du forsøger at tilgå et privat medlem af en klasse direkte udefra?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. 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

We use cookies to make your experience better!
some-alt