a_butta (Member)
Expert
Messaggi: 578
Iscritto: 16/03/2010
|
Ciao a tutti.
Ho una pila (stack) costruito attraverso una template class, in particolare nel mio caso:
Codice sorgente - presumibilmente Plain Text |
Piece* è un puntatore ad un oggetto del mio programma. Dunque sto costruendo una PILA di PUNTATORI agli OGGETTI di massimo 32 puntatori.
Ho costruito un array di 64 pile:
Codice sorgente - presumibilmente Plain Text |
Stack<Piece*,32> *array_pila
|
Ora io ho una funzione in cui voglio passare per valore una delle 64 pile: lo scopo è passare una copia di essa in modo tale da modificarla tranquillamente nella funzione senza distorcere l'originaria. Cercando in internet, la soluzione proposta per il passaggio di una template class:
Codice sorgente - presumibilmente C/C++ |
int isPieceInPossibleStep(Piece *piece, pieceStack &possibleList);
|
La chiamata a funzione la faccio come:
Codice sorgente - presumibilmente C/C++ |
int stepValid = isPieceInPossibleStep(piece,array_pila[index]);
|
Ricevo il seguente errore:
error: invalid initialization of reference of type 'Stack<Piece*, 32>&' from expression of type 'Stack<Piece*, 32>*'
Scusate l'ignoranza sul passaggio di puntatori e classi, ma non saprei come risolvere.
Ringrazio anticipatamente. Ultima modifica effettuata da a_butta il 13/10/2016 alle 22:07 |
|
pierotofy (Admin)
Guru^2
Messaggi: 6230
Iscritto: 04/12/2003
|
Dereferenzia:
Codice sorgente - presumibilmente C/C++ |
int stepValid = isPieceInPossibleStep(piece,*(array_pila[index]));
|
|
|
a_butta (Member)
Expert
Messaggi: 578
Iscritto: 16/03/2010
|
Postato originariamente da pierotofy:
Dereferenzia:
Codice sorgente - presumibilmente C/C++ |
int stepValid = isPieceInPossibleStep(piece,*(array_pila[index]));
|
|
Perfetto. Non m'era venuto in mente. Grazie mille! |
|
pierotofy (Admin)
Guru^2
Messaggi: 6230
Iscritto: 04/12/2003
|
|
|