2012-06-27 9 views
27

Rozważmy następujący:Wywołanie przeciążony operator() Address wskaźnik

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

Kiedy masz:

MyClass* m = new MyClass(); 

Chcę uzyskać dostęp do metody operator(), więc mogłem:

(*m)(1,2); 

Ale czy mogę to zrobić?

m->(1,2); 
+0

'mydummy' jedną sekundę,' T' następne? – Ashe

Odpowiedz

46

Nie z tej składni, ale można zrobić

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

Thankyou Luchian – Andry

+0

@Andry w dowolnym czasie. –

0

Jeśli nie zmieni m (co wskazuje), można zastąpić (*m) przez odniesienie:

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

Aby uzyskać więcej informacji, patrz this answer.

Powiązane problemy