[C++] uso di const
Ciao a tutti!
Qualcuno mi sa spiegare l'utilità di const messo alla fine di una funzione?
Cosa va modificato nella classe E affinchè il codice compili?
Qualcuno mi sa spiegare l'utilità di const messo alla fine di una funzione?
class E{ int x; public: E(int _i){ x= _i; } bool confronta(int i) {}; }; class F{ E e; public: F(int i): e(i){}; bool confronta(int i){return e.confronta(i);} const; };
Cosa va modificato nella classe E affinchè il codice compili?
Risposte
Puoi scriverlo ad esempio nel modo seguente:
Ma dovrebbe essere necessario modificare anche la funzione confronta in modo che sia anch'esso costante (significa che la funzione non modifica le variabili membro della classe) e che restituisca un qualche valore.
bool confronta(int i) const { return e.confronta(i); }
Ma dovrebbe essere necessario modificare anche la funzione confronta in modo che sia anch'esso costante (significa che la funzione non modifica le variabili membro della classe) e che restituisca un qualche valore.
Ma quindi
e
sono equivalenti?
Il fatto è che è un esercizio, e le modifiche vanno fatte solo sulla classe E, mantenendo la classe F invariata.
Io ho provato anche a mettere nella classe E il metodo confronta costante
ma il compilatore continua a darmi lo stesso errore sul metodo confronta della classe F.
L'errore è
declaration does not declare anything [/i] ma non capisco perchè..
bool confronta(int i) const { return e.confronta(i); }
e
bool confronta(int i){return e.confronta(i);} const;
sono equivalenti?
Il fatto è che è un esercizio, e le modifiche vanno fatte solo sulla classe E, mantenendo la classe F invariata.
Io ho provato anche a mettere nella classe E il metodo confronta costante
bool confronta(int i) const{ ...}
ma il compilatore continua a darmi lo stesso errore sul metodo confronta della classe F.
L'errore è
declaration does not declare anything [/i] ma non capisco perchè..
Scusate,
era un errore presente nel testo dell'esercizio!
bool confronta(int i){return e.confronta(i);} const;
era un errore presente nel testo dell'esercizio!