Su molti libri di C++ trovo scritto che è molto piu' consigliato usare gli enum per le costanti simboliche al posto dei define, ma io non capisco perchè
Analizzando due esempi

codice:
enum Errori
{
   NO_ERROR = 0,
   FILE_NOT_FOUND,
   FILE_BUSY
};

if (MiaFunzione == NO_ERROR)
//altro codice
Utilizzando i define

#define NO_ERROR 0
#define FILE_NOT_FOUND 1
#define FILE_BUSY 2
};

if (MiaFunzione == NO_ERROR)
//altro codice
[/code]

Mi spiegate la differenza??