2010-06-23 12 views
6

Wenn Sie einen Typ wie typedef int MY_INT; und gehen auf Überlastung definieren, sagen wir, der adition Betreiber von MY_INT wieC++ Typedefs und Betreiber Überlastung

 
MY_INT operator+(MY_INT a, MY_INT b); 

wird

 
MY_INT a, b; 
a + b; 

verschieden von

 
int A, B; 
A + B; 

?

Sorry für die Syntaxfehler. Ich bin nicht in der Nähe eines Compilers und ich möchte das fragen, bevor ich es vergesse.

+0

'MY_INT Operator + (MY_INT a, MY_INT b);' Dies ist nicht möglich, weil Sie nur Überlastung arithmetische Operatoren können, wenn einer der Parameter einer Klasse-Typ ist. – Job

+0

verweise ich Sie auf diese Frage: http://stackoverflow.com/questions/2135840/whats-the-best-way-to-force-the-user-of-ac-function-to-acknowledge-the-semant – Omnifarious

+0

@Omnifarious, tun Sie schlagen vor, Einwickeln 'int' in einer Klasse, so dass ich seinen Betreiber Typen ohne Auswirkungen auf das System überlasten kann? – Anthony

Antwort

8

No. A typedef ist eigentlich ein Alias ​​für einen anderen Typ. Die ursprünglichen und typdefinierten Typen sind gleich.