Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2008
    Messaggi
    17

    [C++] Confrontare oggetti con stesso genitore

    Salve a tutti... ho la necessità di confrontare due oggetti che ereditano uno stesso genitore, così da poterli distinguere in base al loro tipo... mi spiego:

    Si supponga di avere una class Persona, una class Occupato : Persona, e una class Disoccupato : Persona.

    Ora si supponga di avere:

    codice:
    Persona* p;
    Persona vettP[100];
    
    p = new Occupato;
    vettP[0] = p;
    
    p = new Disoccupato;
    vettP[1] = p;
    
    ...
    Il vettore così popolato, è un vettore di persone, ma contiene sia Occupati che Disoccupati... Al momento della lettura di questo vettore, se io volessi distinguere le persone disoccupate da quelle occupate, potrei farlo???

    Ringrazio tutti in anticipo!

    Giuseppe
    "Uccidi un uomo e sei un assassino.
    Uccidine milioni e sei un conquistatore.
    Uccidili tutti e sei Dio."

    Jean Rostand

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2008
    Messaggi
    17
    up...
    "Uccidi un uomo e sei un assassino.
    Uccidine milioni e sei un conquistatore.
    Uccidili tutti e sei Dio."

    Jean Rostand

  3. #3
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381

    Re: [C++] Confrontare oggetti con stesso genitore

    Devi usare il dynamic_cast<>
    codice:
    Persona* p;
    Persona vettP[100];
    
    p = new Occupato;
    vettP[0] = p;
    
    p = new Disoccupato;
    vettP[1] = p;
    
    ...
    
    Occupato* occ = dynamic_cast<Occupato*>(vettP[0]);
    
    if (occ != 0) {
       cout << " occupato " << endl;
    } else {
       cout << " non occupato " << endl;
    }
    
    Disoccupato* disocc = dynamic_cast<Disoccupato*>(vettP[1]);
    
    if (disocc != 0) {
       cout << " disoccupato " << endl;
    } else {
       cout << " non disoccupato " << endl;
    }
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2008
    Messaggi
    17
    mi documento grazie molte!
    "Uccidi un uomo e sei un assassino.
    Uccidine milioni e sei un conquistatore.
    Uccidili tutti e sei Dio."

    Jean Rostand

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.