in parole molto semplici, il typedef (come dice la parola stessa) ti consente di creare una nuova tiopologia di dato che è diversa da quelle standard di base che ci sono in c++.
in questo modo, puoi dichiarare e utilizzare variabili o oggetti del tipo da te dichiarato che può essere qualsiasi. Questa possibilità di definire nuovi tipi sembra assurda, ma è molto utile!