Pareil ^^
D'ailleurs le constructeur de int n'accepte-t-il pas que des int ?
Pour le typedef, c'est le comportement normal, les valeurs sont compatibles entre elles. Sinon il faudrait créer ton propre type (donc classe/structure/union) mais il faut que ce soit vraiment justifié (i.e. que tu apportes vraiment quelque chose en faisant ça, genre une méthode ou des opérateurs surchargés particuliers, etc...)