2012-06-27 20 views
27

considerar lo siguiente:Calling operador sobrecargado() del objeto puntero

class MyClass { 
public: 
    int operator()(int a, int b); 
}; 

Al tener:

MyClass* m = new MyClass(); 

Quiero tener acceso al método operator(), por lo que pude:

(*m)(1,2); 

¿Pero puedo hacer esto?

m->(1,2); 
+0

'mydummy' un segundo,' T' el siguiente? – Ashe

Respuesta

46
No

con esa sintaxis, pero se puede hacer

m->operator()(1,2); 
+1

Gracias Luchian – Andry

+0

@Andry en cualquier momento. –

0

Si no va a cambiar m (lo que apunta), se puede sustituir por una referencia (*m):

MyClass *m = new MyClass(); 
MyClass &r = *m; 
r(1, 2); 

Ver this answer para más detalles.

Cuestiones relacionadas