Priedai ir mutatoriai C ++

Vienas iš svarbiausių objekto programavimo aspektų yra kapsuliavimas, kuris leidžia apibrėžti duomenų nariams ir nario funkcijoms skirtas etiketes, nurodyti, ar jie yra prieinami iš kitų klasių, ar ne. Dėl to duomenų grupės nariai, pažymėti kaip privatūs, negali tiesiogiai manipuliuoti kitų klasių narių funkcijomis. Kad būtų galima manipuliuoti šiais duomenų nariais, klasės kūrėjas turi teikti specialias nario funkcijas, pažymėtas kaip viešas .

„Accessor“ ir „Mutator“ funkcijos

Prieigos priemonės yra nario funkcijos, leidžiančios naudotis duomenų nariais. Narių funkcijos, leidžiančios keisti duomenų narius, vadinamos mutatoriais .

Kas yra priedas?

Prieiga yra nario funkcija, leidžianti kažkam nuskaityti saugomo duomenų nario turinį. Norint, kad prieigos teikėjas atliktų savo funkcijas, turi būti laikomasi šių sąlygų:

1) Prieiga turi būti tokia pati kaip grąžinamas kintamasis.

2) Prieigai nereikia argumentų.

3) Turi būti nustatyta pavadinimo konvencija, o prieigos gavėjo pavadinimas turi prasidėti prefiksu „Gauti“.

Prieigos priemonės sintaksė, sumažinta iki paprasčiausios išraiškos, atrodo taip:

 klasė MaClasse {

privatus:

TipasDeMaVariable MaVariable;

viešas:

TipasDeMaVariable GetMaVariable ();

};

TipasDeMaVariable MaClasse :: GetMaVariable () {

grįžti MaVariable;

}

Pirmiau pateiktame pavyzdyje duomenų nario prieigos teikėjas galėtų būti:

 Toto klasė {

privatus:

amžius;

viešas:

int GetAge ();

};

int Toto :: GetAge () {

grąžinimo amžius;

}

Kas yra mutatorius?

Mutatorius yra nario funkcija, leidžianti redaguoti saugomo duomenų nario turinį. Kad mutatorius atliktų savo funkciją, turi būti nurodytos šios sąlygos:

1) Kaip parametras turi turėti vertę, kuri turi būti priskirta duomenų nariui. Parametras turi būti tokio paties tipo, kaip ir duomenų narys.

2) Mutatoriui nereikia grąžinti vertės.

3) Turi būti įvardijimo konvencija, prie kurios turi būti įvestas „prefiksas“.

Mutatoriaus sintaksė, sumažinta iki paprasčiausios išraiškos, atrodo taip:

 klasė MaClasse {

privatus:

TipasDeMaVariable MaVariable;

viešas:

void SetMaVariable (TypeDeMaVariable);

};

MaClasse :: SetMaVariable (TypeDeMaVariable MaValeur) {

MaVariable = MaValeur;

}

Pirmiau pateiktame pavyzdyje duomenų nario mutatorius galėtų būti toks:

 Toto klasė {

privatus:

int _age;

viešas:

void SetAge (int);

};

Toid :: SetAge (int age) {

_age = amžius;

}

Originalus dokumentas, paskelbtas „CommentcaMarche.net“.

Ankstesnis Straipsnis Kitas Straipsnis

Geriausi Patarimai