Junior
Vertel over constante methoden in C/C++.
sobes.tech AI
Antwoord van AI
Een constante methode is een klasse-methode die wordt gedeclareerd met het sleutelwoord const na de lijst met parameters. Het garandeert dat de methode de toestand van het klasse-object (this) niet wijzigt.
Belangrijkste eigenschappen en toepassingen:
- Gegarandeerde onveranderlijkheid: Binnen een constante methode kunnen de niet-statische datalleden van het object niet direct of indirect worden gewijzigd.
- Aanroep voor constante objecten: Constante methoden kunnen worden aangeroepen voor zowel constante als niet-constante objecten. Niet-constante methoden kunnen alleen worden aangeroepen voor niet-constante objecten.
- Overbelasting: De methode kan worden overbelast op basis van de constantheid. Dit maakt het mogelijk om twee methoden met dezelfde handtekening (naam en parameters) te hebben, maar één is constant en de andere niet.
- Toepassing: Ze worden gebruikt voor accessoren (getters), die eenvoudigweg de waarde van een datalid teruggeven zonder het object te wijzigen, evenals in functies die constante referenties of pointers naar objecten accepteren.
Voorbeeld:
class MyClass {
public:
int getValue() const { // Constante methode
// Kan member_ lezen = 10;, maar niet schrijven
return member_;
}
void setValue(int val) { // Niet-constante methode
member_ = val; // Kan datalid wijzigen
}
private:
int member_;
};
void printValue(const MyClass& obj) {
obj.getValue(); // OK: aanroep van de constante methode voor een constant object
// obj.setValue(20); // Fout: kan niet een niet-constante methode aanroepen voor een constant object
}