[C++] uso di const

Oo.Stud.ssa.oO
Ciao a tutti!
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
apatriarca
Puoi scriverlo ad esempio nel modo seguente:
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.

Oo.Stud.ssa.oO
Ma quindi
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è..

Oo.Stud.ssa.oO
Scusate,
 bool confronta(int i){return e.confronta(i);} const;

era un errore presente nel testo dell'esercizio!

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.