Accessors en mutators in C ++

Een van de meest kritieke aspecten van objectgeoriënteerd programmeren is inkapseling, waarmee iemand labels voor de gegevensleden en lidfuncties kan definiëren om aan te geven of ze al dan niet toegankelijk zijn vanuit andere klassen. Dientengevolge kunnen gegevensleden die zijn gelabeld als privé niet direct worden gemanipuleerd door lidfuncties van andere klassen. Om deze gegevensleden te kunnen manipuleren, moet de maker van de klas speciale lidfuncties bieden, gemarkeerd als openbaar .

Accessor- en mutatorfuncties

Accessors zijn ledenfuncties die toegang tot gegevensleden toestaan. Ledenfuncties die de wijziging van de gegevensleden mogelijk maken, worden mutators genoemd .

Wat is een accessor?

Een accessor is een ledenfunctie waarmee iemand de inhoud van een beschermd gegevenslid kan ophalen. Voor een accessor om zijn functie uit te voeren, moet aan de volgende voorwaarden zijn voldaan:

1) De accessor moet van hetzelfde type zijn als de geretourneerde variabele.

2) De accessor hoeft geen argumenten te hebben.

3) Er moet een naamgevingsconventie bestaan ​​en de naam van de accessor moet beginnen met het voorvoegsel "Get".

De syntaxis van een accessor teruggebracht tot de eenvoudigste expressie ziet er als volgt uit:

 class MaClasse {

privaat :

TypeDeMaVariable MaVariable;

openbaar :

TypeDeMaVariable GetMaVariable ();

};

TypeDeMaVariable MaClasse :: GetMaVariable () {

terugkeer MaVariable;

}

In het bovenstaande voorbeeld kan de accessor van het gegevenslid het volgende zijn:

 class Toto {

privaat :

int leeftijd;

openbaar :

int GetAge ();

};

int Toto :: GetAge () {

terugkeer leeftijd;

}

Wat is een mutator?

Een mutator is een ledfunctie die het bewerken van de inhoud van een beschermd gegevenslid mogelijk maakt. Om een ​​mutator zijn functie te laten vervullen, moeten de volgende voorwaarden aanwezig zijn:

1) Als parameter moet deze de waarde hebben die moet worden toegewezen aan het gegevenslid. De parameter moet van hetzelfde type zijn als het gegevenslid.

2) De mutator hoeft geen waarde terug te geven.

3) Er moet een naamgevingsconventie bestaan, waarbij de naam van de accessor begint met het voorvoegsel "Set".

De syntaxis van een mutator teruggebracht tot de eenvoudigste expressie ziet er als volgt uit:

 class MaClasse {

privaat :

TypeDeMaVariable MaVariable;

openbaar :

void SetMaVariable (TypeDeMaVariable);

};

MaClasse :: SetMaVariable (TypeDeMaVariable MaValeur) {

MaVariable = MaValeur;

}

In het bovenstaande voorbeeld zou de mutator van het gegevenslid het volgende kunnen zijn:

 class Toto {

privaat :

int _age;

openbaar :

void SetAge (int);

};

void Toto :: SetAge (int age) {

_age = leeftijd;

}

Origineel document gepubliceerd op CommentcaMarche.net.

Vorige Artikel Volgende Artikel

Top Tips