View Full Version : Che significa questa dichiarazione in C++?
Ho trovato questa funzione membro di una classe ma non capisco il significato della parola const
int getDen() const;
non se ne potrebbe fare a meno? A cosa serve?
Un grazie anticipato a chi mi darà una risposta.
ilsensine
14-06-2002, 12:07
Significa che una chiamata a quel metodo non modifica l'oggetto, quindi può essere fatta quando l'oggetto è dichiarato const:
void foo (const MyClass &Obj) {
Obj.getDen();
}
Se getDen non fosse dichiarata const, sarebbe errato (o se il compilatore è buono ti segnala almeno un warning).
Quella funzione deve essere semplicemente usata per leggere i valori di due sttributi privati di una classe. Il const se ho capito bene quindi mi dice che questi due valori non possono essere modificati?
ilsensine
14-06-2002, 18:18
Il compilatore non sa se e quali valori devi leggere. Con const indichi semplicemente che quella funzione non effettuerà modifiche alla classe. Qualsiasi modifica che una funzione const tenti di fare alla propria classe verrà segnalata con un errore in fase di compilazione. Tutto ciò è logico e coerente.
Ho capito, però ti vorrei far notare una cosa. Nel mio caso la dichiarazione è di questo tipo:
int getDen() const;
mentre nel tuo caso sarebbe così:
void foo (const MyClass).
Le cose non sono diverse?
ilsensine
14-06-2002, 18:39
Il mio era un esempio di un caso dove viene invocato un metodo di una classe costante.
Ho capito! Grazie per l'aiuto!
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.