Source: http://deptinfo.cnam.fr/Enseignement/CycleA/APA/nfa032/docs/corriges-classes-1.pdf