posso sovraccaricare l'operatore parentesi con la seguente firma:Chiamando la parentesi di sovraccarico dato un puntatore
char& operator()(const int r, const int c);
L'utilizzo previsto per questo sarebbe:
// myObj is an object of type MyClass
myObj(2,3) = 'X'
char Y = myObj(2,3);
che funziona come mi aspetto. Tuttavia, l'utilizzo dell'operatore parentesi quando si ha a che fare con un puntatore diventa contorto. Vorrei fare:
// pMyObj is a pointer to an object of type MyClass
pMyObj->(2,3) = 'X';
char Y = pMyObj->(2,3);
Tuttavia, tale sintassi cede l'errore Error: expected a member name
(in VisualStudio almeno).
Quanto segue funziona ma mi sembra complicato con un dereferenziamento e più parentesi che argomenti.
char X = (*pMyObj)(2,3);
C'è un modo per utilizzare l'operatore ->
di chiamare il ()
sovraccarico?
'pMyObj-> operator() (2,3)' – juanchopanza
Sei sicuro di non poter eliminare il puntatore? Altrimenti, dovrai scegliere il minore di due mali. – chris