mogę przeciążać operatora nawias stosując następujący podpis:Wywołanie nawias przeciążenie podany wskaźnik
char& operator()(const int r, const int c);
Zamierzone wykorzystanie byłoby:
// myObj is an object of type MyClass
myObj(2,3) = 'X'
char Y = myObj(2,3);
Który działa jak oczekuję. Jednak użycie operatora nawiasu przy pracy ze wskaźnikiem staje się zawiłe. Chciałbym zrobić:
// pMyObj is a pointer to an object of type MyClass
pMyObj->(2,3) = 'X';
char Y = pMyObj->(2,3);
Jednakże taka składnia daje błąd Error: expected a member name
(w VisualStudio przynajmniej).
Poniższe działa, ale wydaje mi się zawiłe z dereferencją i więcej nawiasów niż argumenty.
char X = (*pMyObj)(2,3);
Czy istnieje sposób, aby użyć operatora ->
wywołać przeciążenie ()
?
'pMyObj-> operator() (2,3)' – juanchopanza
Czy na pewno nie można wyeliminować wskaźnika? Jeśli nie, musisz wybrać mniejsze zło. – chris