Junior
Pastāsti par nemainīgajām metodēm C/C++.
sobes.tech AI
Atbilde no AI
Pastāvīga metode ir klases metode, kas deklarēta ar atslēgas vārdu const pēc parametru saraksta. Tā nodrošina, ka metode nemaina klases objekta (this) stāvokli.
Galvenās īpašības un pielietojumi:
- Nemainīguma garantija: Iekļūstot pastāvīgā metodē, nav iespējams tieši vai netieši mainīt objekta nestatiskos datu locekļus.
- Izsaukums pastāvīgiem objektiem: Pastāvīgas metodes var tikt izsauktas gan pastāvīgiem, gan nepastāvīgiem objektiem. Nepastāvīgas metodes var tikt izsauktas tikai nepastāvīgiem objektiem.
- Pārlādēšana: Metode var tikt pārlādēta pēc pastāvīguma īpašības. Tas ļauj divas metodes ar vienādu parakstu (nosaukumu un parametriem), bet viena būs pastāvīga, bet otra — nē.
- Pielietojums: Tās tiek izmantotas piekļuves metodēm (getteriem), kas vienkārši atgriež datu locekļa vērtību, nemainot objektu, kā arī funkcijās, kas pieņem pastāvīgas atsauces vai norādītājus uz objektiem.
Piemērs:
class MyClass {
public:
int getValue() const { // Pastāvīga metode
// Var lasīt member_ = 10;, bet nevar rakstīt
return member_;
}
void setValue(int val) { // Nepastāvīga metode
member_ = val; // Var mainīt datu locekli
}
private:
int member_;
};
void printValue(const MyClass& obj) {
obj.getValue(); // OK: izsaukta pastāvīga metode pastāvīgai objekta
// obj.setValue(20); // Kļūda: nevar izsaukt nepastāvīgu metodi pastāvīgai objekta
}