Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    cast c++

    Ciao a tutti.
    Ho un problema nel fare il cast da un tipo a un altro.
    Ho 2 matrici, dove la prima è piena di oggetti di tipo uno, e la seconda e piena di oggetti di tipo 2.
    Devo fare un metedo che mi permetta di passare queste due matrici e fare il cast da un tipo all'altro.
    L ho fatto tramite costruzione di un predicato, ma rimane troppo statico come metodo, e mi servirebbe una cosa molto più generica.

    Grazie per l'aiuto!

  2. #2
    Questi tipi che tipo primario ridefiniscono ?

    Se sono oggetti, puoi fare un cast solamente se questi due oggetti estendono una classe base comune, e castarli alla classe base non tra l'uno e l'altro.

    Se sono tipi primari il cast sarebbe più facile, però devi considerare i troncamenti di byte che puoi avere.
    lolide
    Java Programmer

    Informati

  3. #3
    il tipo di valori che posso inserire all'interno della matrice dipende dal test che voglio fare....
    esempio test 1....creo matrice uno di tipo double
    creo matrice due di tipo int
    questo metodo deve castarmi la prima matrice nel tipo della seconda....

    test 2 posso fare il contrario ecc...

  4. #4
    Rieccomi.
    Ero senza compilatore, non potevo provare il codice e volevo assicurarmi che funzionasse.

    Comunque per fare questo sicuramente devi usare i template perchè non sai a priori i tipi degli oggetti.

    Poi usa un reinterpreter_cast a cui non importa se sono compatibili i tipi, fa solo una copia byte per byte della matrice in quella di destinazione.

    codice:
    template <class T1, class T2> void funzione (T1 **matrice1, T2 **matrice2) {
    	T2 **asd = reinterpret_cast<T2**>(matrice1);
    }
    
    int main ()
    {
    	double **matrice1;
    	int **matrice2;
    
    	funzione(matrice1, matrice2);
    }
    lolide
    Java Programmer

    Informati

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.