Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [C++] Oggetti

  1. #1

    [C++] Oggetti

    Vorrei creare una classe 'persona' con il campo 'anni' metodo 'getAnni()'.
    Le classi 'bambino','adulto' e 'anziano' estendono 'persona'.
    'bambino' ha il metodo 'cresci()' che lo trasforma in un adulto, 'adulto' ha il metodo 'invecchia()' che lo trasforma in un anziano.
    Voglio infine creare un array di persone in cui ci siano bambini,adulti,anziani.
    Mi potete aiutare?

  2. #2
    Cosa non sai fare di quello che hai descritto?
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it L'avatar di Pacio88
    Registrato dal
    Sep 2007
    Messaggi
    447
    Se posso permettermi il tuo problema non è impostato nel miglior dei modi.
    Non potresti creare una classe persona avente un membro dato che determina se è bambino, adulto e vecchio(magari lo fai determinare dal dato anni).
    Almeno così eviti, per esempio, la trasformazione da oggetto bambino ad adulto che non la vedo troppo funzionale e permissiva.

    Comunque ti consiglio di iniziare a postare un po' di codice.

  4. #4
    Beh...a me interessava proprio la trasformazione da un oggetto all'altro...era più che altro per capire come funziona

  5. #5
    Utente di HTML.it L'avatar di Pacio88
    Registrato dal
    Sep 2007
    Messaggi
    447
    Capisco, avevo frainteso che fosse un progetto.

    Secondo me è alquanto improbabile che ci sia un modo che attraverso la chiamata di una funzione membro possa modificare il tipo di oggetto chiamato. Per farla più semplice non credo che tu possa cambiare il tipo bambino in adulto chiamando il metodo cresci(). Forse l'unica cosa che puoi fare è creare una funzione cresci che ritorna un oggetto di tipo adulto con i dati derivanti dall'oggetto bambino su cui è chiamata la funzione; ma non sarebbe una "vera trasformazione" da bambino ad adulto.

    Comunque aspetta il parere di un esperto(presto arriverà) e io capace mi vedrò quotare tutto quello ho scritto commentato che sono delle cavolate.

  6. #6
    Non serve che una funzione trasformi un bambino in un adulto.
    Basta ad esempio che si esegua cresci() (che ad esempio incrementa l'età) e poi si sostituisce a bambino, adulto di età=bambino.età.
    Volevo solo sapere come realizzarlo.

  7. #7
    Aspetta un attimo... tu vuoi un metodo di una classe che trasformi l'istanza su cui è eseguito in un'istanza di un'altra classe? No, questo non si può fare. Al massimo puoi fare un metodo della classe bambino che restituisca una nuova istanza della classe Adulto impostando le sue proprietà in base a quelle dell'oggetto Bambino, oppure puoi creare un costruttore di Adulto che accetti come parametro un oggetto Bambino che costruisca il nuovo oggetto adulto basandosi sulle proprietà dell'oggetto Bambino passato.
    Amaro C++, il gusto pieno dell'undefined behavior.

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.