Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Accessor- og Mutator-metoder | Oversigt over Indkapsling
C++ OOP

Accessor- og Mutator-metoder

Stryg for at vise menuen

Indkapsling indebærer også at begrænse direkte adgang til nogle af et objekts komponenter, hvilket er, hvor accessor- og mutatorfunktioner kommer ind i billedet. Accessor- og mutatorfunktioner, mere almindeligt kendt som gettere og settere, er public metoder, der giver kontrolleret adgang til klassens private datamedlemmer.

Accessor-funktioner (gettere) er funktioner, der tillader aflæsning af værdierne for private datamedlemmer uden at ændre dem. De er vigtige for at opnå objektets tilstand, samtidig med at datamedlemmerne holdes skjulte og beskyttede.

getter.h

getter.h

123456
class Example { public: int get_member() { return member; } private: int member; };

Mutator-funktioner (Settere) er funktioner, der muliggør ændring af private datamedlemmers værdier. De giver en kontrolleret måde at ændre et objekts tilstand på. Ved at bruge settere er det muligt at implementere valideringslogik for at sikre, at kun gyldige data tildeles datamedlemmerne.

setter.h

setter.h

123456
class Example { public: void set_member(int value) { member = value; } private: int member; };

Den primære funktion for getters og setters er at styre adgangen til en klasses medlemmer og dermed minimere sandsynligheden for fejl forårsaget af direkte manipulation. For eksempel gør de det muligt at begrænse tildelingen af alt for store værdier til bestemte egenskaber. Du kan begrænse effekten af varmelegemet til værdien 10; du kan ikke sætte den højere end det.

main.cpp

main.cpp

12345678910111213141516
#include <iostream> class Heater { public: void setPower(int value) { power = value > 10 ? 10: value; } int getPower() { return power; } private: int power; }; int main() { Heater heater; heater.setPower(7); std::cout << heater.getPower(); }
question mark

Hvilket alternativt navn bruges ofte for mutator-metoder i programmering?

Vælg det korrekte svar

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 4

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

Sektion 3. Kapitel 4
some-alt