Les types de référence permettent de définir des synonymes pour des objets. On s'en sert comme type de paramètre de fonction pour passer des arguments par référence et non pas par valeur. On indique un type référence dans une déclaration par le symbole '&' placé de la même façon que le symbole '*' indiquant un pointeur. Pour définir un synonyme, il faut que l'initialisateur soit le nom d'un objet du type référencé.
int i ; int &ri=i ; // definit ri synonyme de i ri=3 ; // i recoit 3 int j ; int *pi ; j=i*ri ; // j recoit 9 pi = &ri ; // pi pointe sur l'adresse de i double d ; // attention a la concordance des types int &ri = d ; // un objet anonyme de type int est cree ri=3.0 ; // la valeur de d n'est pas modifie void incrementer(int & i) { i++ ; }Si le type du synonyme ne correspond pas, un objet anonyme est créé.