Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Tipo di un oggetto determinato in fase di esecuzione

    Salve a tutti.
    Per un mio progetto mi chiedevo se fosse possibile creare un oggetto il cui tipo sia determinabile in fase di esecuzione. Mi spiego meglio:
    ho tre classi (che sono completamente INDIPENDENTI, cioè non derivano da nessun'altra classe): tipo1, tipo2, tipo3; e un oggetto: ogg.
    Vorrei poter, in fase di esecuzione, scegliere se ogg apparterrà a tipo1, tipo2, o tipo3.

    E' possibile fare questo?
    Io ho già provato con i puntatori e i template, ma non ho risolto granché.

    Grazie in anticipo.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,472
    Parliamo di C++ ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Si, scusa mi sono dimenticato del linguaggio!
    C++

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,472
    In sintesi che codice hai provato ? E a cosa ti serve questa cosa ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    In realtà non ho provato nessun codice, ho soltanto guardato su internet se esiste una soluzione al mio problema.
    Mi serve per una libreria per leggere documenti xml, non posso approfondire più di tanto perché sarebbe troppo complicato.
    Mi basterebbe soltanto un esempio, nulla di che.

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,472
    Se hai una classe tipo1 e una variabile oggetto obj puoi confrontarli usando

    #include <typeinfo>


    if(typeid(obj) == typeid(tipo1))
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    No, forse mi sono espresso male...
    Io ho un oggetto obj e voglio che, al verificarsi di determinate condizioni, obj possa essere di tipo tipo1, tipo2, tipo3.
    quindi una cosa così

    codice:
    if(condizione) obj=type(tipo1)
    else if(condizione) obj=type(tipo2)
    else if(condizione) obj=type(tipo3)
    Ovviamente questo è pseudo-codice.

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,472
    il cui tipo sia determinabile
    Con questo pensavo che volessi capire di che tipo era ...

    Comunque, non si capisce obj di che tipo sia prima di quella if ... Se è semplicemente un puntatore ad un oggetto di classe e derivi le altre dalla prima, puoi fare quello che chiedi. Altrimenti non puoi cambiarne il tipo.

    Almeno, se ho capito ... se spieghi in dettaglio la situazione, andando oltre il quesito generico, forse si trova una strada alternativa determinando come sbagliata quella che pensi di adottare.
    Ultima modifica di oregon; 25-07-2016 a 17:06
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Ok, forse qualcosa ho trovato.
    Utilizzando la keyword auto sarà compito del compilatore intuire il tipo della variabile.
    Ora c'è solo da vedere come introdurla nel mio progetto.

    E' questo che intendevo, determinare il tipo dell'oggetto in fase di esecuzione.

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,472
    Quote Originariamente inviata da Blocker255 Visualizza il messaggio
    Ok, forse qualcosa ho trovato.
    Utilizzando la keyword auto sarà compito del compilatore intuire il tipo della variabile.
    Ora c'è solo da vedere come introdurla nel mio progetto.

    E' questo che intendevo, determinare il tipo dell'oggetto in fase di esecuzione.
    Guarda che auto usata dal c++11 in poi serve solo a determinare il tipo della variabile dall'espressione di inizializzazione a tempo di compilazione. Assolutamente non c' entra con quello che vorresti tu.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Tag per questa discussione

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 © 2024 vBulletin Solutions, Inc. All rights reserved.