Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [C++] classi

  1. #1

    [C++] classi

    Non sono un esperto con le classi, ho sempre usato le strutture, ma adesso e' arrivato il momento di ampliare i miei orizzonti...
    Ho una domandina semplice semplice riguardante la ereditarietà...
    Ho questo programma:
    codice:
    class veicoli_a_motore {
    	// ...
    };
    class due_ruote : public veicoli_a_motore {
    	// ..
    };
    class quattro_ruote : public veicoli_a_motore {
    	// ...
    };
    int main () {
    	// ...
    	return 0;
    }
    Dovrei quindi realizzare un array che possa contenere elementi sia di tipo due_ruote, sia quattro_ruote per accedere ai rispettivi membri...


    Come faccio?


    Con le strutture avrei fatto qualcosa del tipo:
    codice:
    struct due_ruote {
    	// ...
    };
    struct quattro_ruote {
    	// ...
    };
    struct veicoli_a_motore {
    	union {
    		due_ruote b;
    		quattro_ruote c;
    	};
    	// ...
    };
    int main () {
    	veicoli_a_motore array[];
    	// ...
    	return 0;
    }

    Con le classi non è che magari c'è un metodo migliore e più elegante?

  2. #2
    Ciao,
    Uppo perchè interessa anche a me... Anche se non esclusivamente con le classi... L'unico modo per fare un'array che possa puntare a tipi di dato simili (ma non uguali, come nel tuo caso) è quello di creare un puntatore a entrambi gli elementi e usarne uno solo?
    Non ci sono metodi migliori?

    PuffolottO

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Dato che gli array sono strutture dati che contengono elementi tutti dello stesso tipo non c'è un metodo migliore. Anzi, direi che più elegante di quello non ce ne sono, in quanto si sfrutta appieno proprio una delle principali proprietà degli oggetti: l'ereditarietà! Dato che sia i veicoli_a_2_ruote, sia i veicoli_a_4_ruote sono veiaoli_a_motore, è possibile contenerli tutti in un unico array nel modo sopra citato.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Originariamente inviato da LeleFT
    Dato che gli array sono strutture dati che contengono elementi tutti dello stesso tipo non c'è un metodo migliore. Anzi, direi che più elegante di quello non ce ne sono, in quanto si sfrutta appieno proprio una delle principali proprietà degli oggetti: l'ereditarietà! Dato che sia i veicoli_a_2_ruote, sia i veicoli_a_4_ruote sono veiaoli_a_motore, è possibile contenerli tutti in un unico array nel modo sopra citato.


    Ciao.
    Ok, ho capito...
    Grazie per l'ottima spiegazione

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.