2010-06-23 14 views
6

Si se define un tipo como typedef int MY_INT; y pasar a la sobrecarga, por ejemplo, el operador adition de MY_INT comoC++ typedefs y la sobrecarga de operadores

 
MY_INT operator+(MY_INT a, MY_INT b); 

se

 
MY_INT a, b; 
a + b; 

ser diferente de

 
int A, B; 
A + B; 

?

Disculpe por cualquier error de sintaxis. No estoy cerca de un compilador y quiero preguntar esto antes de olvidarlo.

+0

'MY_INT operator + (MY_INT a, MY_INT b);' Esto no es posible porque solo puede sobrecargar los operadores aritméticos cuando uno de los parámetros es de un tipo de clase. – Job

+0

Lo remito a esta pregunta: http://stackoverflow.com/questions/2135840/whats-the-best-way-to-force-the-user-of-ac-function-to-acknowledge-the-semant – Omnifarious

+0

@Omnifarious, ¿sugieres envolver 'int' en una clase para que pueda sobrecargar a sus operadores sin afectar el tipo de sistema? – Anthony

Respuesta

8

No. A typedef es en realidad un alias para otro tipo. Los tipos original y typedef-ed son iguales.