[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!