2010-06-23 19 views
6

Se si definisce un tipo come typedef int MY_INT; e andare a sovraccarico, per esempio, l'operatore adition di MY_INT comeC++ typedef e l'overloading degli operatori

 
MY_INT operator+(MY_INT a, MY_INT b); 

sarà

 
MY_INT a, b; 
a + b; 

essere diverso da

 
int A, B; 
A + B; 

?

Ci scusiamo per eventuali errori di sintassi. Non sono vicino a un compilatore e voglio chiederlo prima che me ne dimentichi.

+0

'MY_INT operator + (MY_INT a, MY_INT b);' Questo non è possibile perché è possibile sovraccaricare solo gli operatori aritmetici quando uno dei parametri è di un tipo di classe. – Job

+0

Ti rimando a questa domanda: http://stackoverflow.com/questions/2135840/whats-the-best-way-to-force-the-user-of-ac-function-to-acknowledge-the-semant – Omnifarious

+0

@Onnuncio, suggerisci di inserire 'int' in una classe in modo da poter sovraccaricare i suoi operatori senza influire sul tipo di sistema? – Anthony

risposta

8

No. Un typedef è in realtà un alias per un altro tipo. I tipi originali e tipizzati sono gli stessi.