devo classe base A, classe B eredita da A, classe C che è una classe template eredita dalla classe A. D eredita da C. La relazione è il seguente:circa dynamic_cast C++ con classe template
A
/\
B C (template class)
\
D
Posso creare un oggetto A O1 utilizzando l'oggetto D D1, quindi voglio il cast dinamico O1 a un oggetto di tipo C C1. Ma trovo che fallisce. La mia domanda è perché questo processo fallisce?
Quindi uso static_cast per creare l'oggetto di tipo C C2 dall'oggetto D D1 e ho verificato che C2 ha il valore corretto da D2. È sempre utile convertire dal tipo D al tipo C usando static_cast?
Grazie !!!
Inserire il codice completo, insieme ai risultati previsti ed effettivi. Ci sono un numero infinito di cose che potrebbero andare storte e non possiamo dire quale sia senza un codice specifico. – Mankarse
La tua classe base ha funzioni virtuali? In caso contrario, non è possibile utilizzare 'dynamic_cast'. – GManNickG
Ricorda che la maggior parte di queste conversioni è valida solo per puntatori e riferimenti, non per gli oggetti stessi. Non è chiaro dalla tua descrizione esattamente quello che stai cercando di convertire; qualche codice di esempio sarebbe utile. –