2016-01-31 19 views

risposta

4

La prima definisce una classe con il nome x1.

Il secondo definisce una classe senza nome e definisce anche un alias di tipo, con il nome x2.

La differenza è molto sottile in C++. È possibile osservare la differenza cercando di dichiarare una funzione con lo stesso nome:

void x1(); // OK 
void x2(); // not OK, redefined as a different type of symbol 

In pratica, si dovrebbe evitare la definizione di una funzione con lo stesso nome di una classe all'interno dello stesso spazio dei nomi, quindi questa differenza viene quasi mai su. Il primo è in genere preferito perché è più semplice.

In C, lo difference influenza ulteriormente l'uso dell'identificatore.

Problemi correlati