le compilateur différencie les fonctions de même nom par leur signature :
- nombre et nature des arguments,
- type de valeur retournée.
ainsi int read( void) et int read (char*buffer, int nombre) sont bel et bien 2 fonctions différentes.
Ca s'appelle le polymorphisme du C++