Buonasera.
Ho due dubbi riguardo a questo codice:
codice:
class NomeClasse;
typedef unsigned int nometipo;
class NomeClasse
{
public:
//Inizializzazione
Prototipo();
Prototipo(char c);
Prototipo(char c, int i);
Prototipo(const char *str);
...
}
I miei dubbi sono:
1. Non capisco perché nell'esempio venga scritto "class NomeClasse;" all'inizio... a che serve? A caricare i typedef? Serve per "pre-caricare la classe"? E per quale motivo?
2. Nell'inizializzazione della classe mi ritrovo con dei prototipi con lo stesso nome ma che accettano argomenti diversi... quello che non capisco è: come fa il compilatore a non confondersi? "Acchiappa" al volo il prototipo che accetta gli argomenti come quelli che gli sono stati passati? Oppure serve a qualche altra cosa che non sò?
Grazie in anticipo.