Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Passare una pila costruita come TEMPLATE CLASS ad una funzione per VALORE
Forum - C/C++ - Passare una pila costruita come TEMPLATE CLASS ad una funzione per VALORE

Avatar
a_butta (Member)
Expert


Messaggi: 578
Iscritto: 16/03/2010

Segnala al moderatore
Postato alle 22:06
Giovedì, 13/10/2016
Ciao a tutti.

Ho una pila (stack) costruito attraverso una template class, in particolare nel mio caso:

Codice sorgente - presumibilmente Plain Text

  1. Stack<Piece*,32>




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

  1. 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++

  1. int isPieceInPossibleStep(Piece *piece, pieceStack &possibleList);



La chiamata a funzione la faccio come:

Codice sorgente - presumibilmente C/C++

  1. 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


PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6116
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 22:56
Giovedì, 13/10/2016
Dereferenzia:

Codice sorgente - presumibilmente C/C++

  1. int stepValid = isPieceInPossibleStep(piece,*(array_pila[index]));



Seguimi su Twitter: http://www.twitter.com/pierotofy

Fai quello che ti piace, e fallo bene.
PM Quote
Avatar
a_butta (Member)
Expert


Messaggi: 578
Iscritto: 16/03/2010

Segnala al moderatore
Postato alle 9:13
Martedì, 18/10/2016
Testo quotato

Postato originariamente da pierotofy:

Dereferenzia:

Codice sorgente - presumibilmente C/C++

  1. int stepValid = isPieceInPossibleStep(piece,*(array_pila[index]));




Perfetto. Non m'era venuto in mente. Grazie mille!


PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6116
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 15:18
Martedì, 18/10/2016
:k:


Seguimi su Twitter: http://www.twitter.com/pierotofy

Fai quello che ti piace, e fallo bene.
PM Quote