Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543

    [C++] Esercizio con Puntatori e classi

    Buona Sera,

    essendo alle prime armi con il C++, mi sto dilettando a svolgere questo esercizio:

    "Implementare una classe 'Person' che preveda due campi 'nome' e 'eta', e una classe 'Car' che preveda i tre campi di seguito:
    - il modello;
    - un puntatore che fa riferimento al proprietario (un oggetto Person*);
    - un puntatore che fa riferimento al conducente (anche in questo caso un oggetto Person*).

    Scrivere, quindi, un programma che chieda all'utente di indicare le persone e le auto. Memorizzare i dati rispettivamente in un 'vector<Person*>' e in un 'vector<Car*>'. Scorrere il vettore di oggetti 'Person' e incrementare l'eta di ciascuno. Infine, scorrere il vettore delle auto e visualizzare il modello, il nome e l'eta del proprietario, il nome e l'eta del conducente'.

    Ho provato a svolgere l-esercizio scrivendo i due file .h in questo modo;

    //////////////////////////////////////////
    Car.h

    #include <string>

    using namespace std;

    class Car
    {
    public:
    Car(string mod);
    void set_proprietario(Person* p);
    void set_conducente(Person* p);


    private:
    string modello;
    Person* proprietario;
    Person* conducente;
    };

    Car::Car(string mod)
    {
    modello = mod;
    proprietario = NULL;
    conducente = NULL;
    }
    void Car::set_proprietario(Person* p)
    {
    proprietario = p;
    }
    void Car::set_conducente(Person* p)
    {
    conducente = p;
    }

    \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
    ////////////////////////////////////////
    Person.h


    #include <iostream>
    #include <string>

    using namespace std;

    class Person
    {
    public:
    Person();
    Person(string nome, int eta);
    void set_nome(string nome);
    void set_eta(int eta);
    string get_nome();
    int get_eta();
    private:
    string Nome;
    int Eta;
    };

    Person::Person()
    {}
    Person::Person(string nome, int eta)
    {
    Nome = nome;
    Eta = eta;
    }
    void Person::set_nome(string nome)
    {
    Nome = nome;
    }
    void Person::set_eta(int eta)
    {
    Eta = eta;
    }
    string Person::get_nome()
    {
    return Nome;
    }
    int Person::get_eta()
    {
    return Eta;
    }
    \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\


    Ed ora non saprei come fare, nel main*(), a ottenere quanto chiesto.

    Non chiedo la soluzione, ma solo un aiuto a o un suggerimento.
    Grazie mille.
    "To iterate is human, to recurse, divine." (R.(Heller))

  2. #2
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    Bè i file .h sembrano appostro.. Ora però devi imparare ad usare l'oggetto vector dell'STL cioè la libreria standard.. (Standard Template Library)

    Un piccolo accenno: vector è un contenitore di oggetti (e puntatori ad oggetti), non ordinato ma ordinabile, che contiene al suo interno un iteratore (sempre STL) per poterlo scorrere.. Quindi unja chiamata al "vector<person*> vect"
    così:

    codice:
    int e = vect[0]->eta;
    è l'età della prima persona (ricordarsi che si parte sempre da 0) e così via..

  3. #3
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543
    Ciao e grazie per avermi risposto,
    ti dico subito che conosco già i vettori: certo, non alla grande, ma qualcosa la so fare.
    Il problema è: "come faccio a far si che l'utente inserisca dei dati e vengano impostati tramite set_nome(), ecc.? " Non si può fare qualcosa del tipo
    codice:
    cout << "Inserisci dati ";
    cin >> set_anni();
    Per questo avrei bisogno di maggiori ionformazioni se non ti spiace. ;-)
    "To iterate is human, to recurse, divine." (R.(Heller))

  4. #4
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    Bè fai così, visto che la funzione è set_eta(int eta) il codice sarebbe:

    codice:
    int et:
    cout<<"inserisci età: ";
    cin>>et;
    vect[0]->set_eta(et);
    questo con un vector di person*

  5. #5
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543
    Grazie mille,
    provo e ti faccio sapere.
    "To iterate is human, to recurse, divine." (R.(Heller))

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.