Newsgroup: it.comp.lang.c++
Titolo: cosa fa questo codice?

Salve a tutti,
sugli appunti del mio prof di Informatica c'è la definizione di un
file utilita.h al cui interno c'è una classe Eq che dovrebbe fornire
un operatore generico di uguaglianza... mi aiutate a capirlo?
template <class T>
class Eq {
    pubblic:
        const bool eDef; // TRUE se uguaglianza di default è ==
        //ma una const non dovrebbe avere un valore in fase di
dichiarazione?
        //funzione di uguaglianza di default o specifica
        bool uguale(const T& a1, const T& a2) { return eDef? a1==a2 :
ugualespec(a1,a2); }
        friend bool operator== (const Eq& e1, const Eq& e2) { return
&e1==&e2;
}
        //perché e1 e e2 sono di tipo Eq? tra cosa fa il confronto? mi
fate un
esempio?
        Eq (bool eDefault=false):eDef(eDefault) {} // costruttore
        virtual bool ugualespec( const T& a1, const T& a2 ) const =0;
//funzione virtuale pura
};
template <class T>
class EqDef: pubblic Eq<T> //sottoclasse di uguaglianza di default
{
    pubblic:
        EqDef():Eq<T>(true){}
        bool ugualespec(const T& a1, const T& a2) const { return
a1==a2; }
};
potreste farmi un esempio di utilizzo di tale classe?
Vi ringrazio! ^_^
potete rispondere anche alla mia mail : 
xst...@libero.it
Cristian ^_^

 potreste farmi un esempio di utilizzo di tale classe?
EqDef<int> eq;
bool b_false = eq.uguale(5, 4);
bool b_true = eq.uguale(5, 5);
Ciao Fbf.

consentito di essere definita dentro il corpo della classe di cui è friend.
ma che utilità può avere confrontare due oggetti della classe Eq?
E' questo che non riesco a capire.
Più avanti nel file c'è la definizione di una classe "Ord" e fa la
stessa cosa!
ciao e grazie ^_^

 };
Bella li! Ma se la selezione dell'algoritmo era fatta tramite eDef allora a che
serve? O meglio, quale e' lo scopo di eDef se comunque il paragone richiede una
chiamata a virtuale e quindi la selezione dell'algoritmo avviene per
polimorfismo?
Ripeto: questo codice non l'ho capito proprio per nulla. E fa schifo se non
altro per il fatto che non ci sono commenti che dicono a cosa serve. Qual'e'
l'astrazione rappresentata dalla classe? Non si capisce. Sicuramente il codice
e' sbagliato, se non altro perche' non compila. Ma non e' semplice "correggerlo"
dato che non sta scritto da nessuna parte che a cosa serve e cosa dovrebbe fare!
--
Andrea Ferro
---------
Brainbench C++ Master. Scored higher than 97% of previous takers
Scores: Overall 4.46, Conceptual 5.0, Problem-Solving 5.0
More info 
http://www.brainbench.com/transcript.jsp?pid=2522556

 Divertente. Questo codice non compila!!
Forse mi sfugge qualcosa. Perche' non dovrebbe compilare?
Ciao,
Nicola

 wrote in message
news:3AE951F6...@divalsim.it...

Perche' ero ubriaco! Non compilava il pubblic con due b!!
Scusate.
Comunque la logica di mettere un booleano per scegliere l'algoritmo ... e poi di
scegliere l'algoritmo con il polimorfismo mi sfugge anche quando sono sobrio!


 scegliere l'algoritmo con il polimorfismo mi sfugge anche quando sono sobrio!
In effetti mi stavo domandando da quale linguaggio potesse essere
mutuato questo idioma quanto meno peculiare.
Ciao,
Nicola
P.S. Ma perche' i docenti non si aggiornano?