Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [c++] classi

    Buongiorno, è da poco che sto studiando il c++, e ora mi sono imbattuto in un programma con le classi. Il programma è abbastanza semplice, ma visto che io sono poco esperto nel campo, ho trovato un po' di difficoltà. Per il nome e il cognome utilizzo due vettori di char (grandezza 15). Se io volessi allocare dinamicamente questi due vettori non sapendo inizialmente come si chiama il cliente come posso fare?? L'allocazione dovrei farla nel costruttore, ma non mi riesce perchè non so a priori la lunghezza del nome e del cognome. Come potrei fare?
    In attesa di risposta, grazie.



    codice:
    class Element
    {
    public:
    char nome [15];
    char cognome [15];
    int anno_di_nascita;
    void inserisci_dati ( );
    void visualizza( );
    Element
    {
     anno di nascita=0;
    }
    
    };
    
    
    
    void Element::inserisci_dati( )
    {
    cout <<" Inserire il nome del cliente: ";
    cin >> nome;
    cout << endl;
    
    cout <<" Inserire il cognome del cliente: ";
    cin >> cognome;
    cout << endl;
    
    cout <<" Inserire l' anno di nascita: ";
    cin >> anno_di_nascita;
    cout << endl;
    }
    
    void Element::visualizza( )
    {
        cout << "Il nome del cliente inserito è:    " <<nome << endl;
        cout << "Il cognome del cliente inserito è:    " <<cognome << endl;
    cout << "l'anno di nascita del cliente inserito è:    " <<anno_di_nascita << endl;
    }
    
    int main()
    {
    int i(0), n;      
    cout<<"quanti clienti deve gestire la banca\?"<<endl;
        cin>>i;
         Element*istanza;
        istanza=new Element[i];
         for(n=0;n<i;n++)
    {        
    istanza[n].inserisci_dati( );
    }
    for(n=0;n<i;n++)
    {               
     istanza[n].visualizza();
       }
            return();
    }

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Dovresti usare std::string invece di buffer di caratteri. Così ti risparmi un sacco di grattacapi sulla gestione delle asciiz string (allocazione, deallocazione, quanto è lunga, non acquisisce spazi etc.)

    In ogni caso non hai molta scelta. Alloca un buffer che ritieni sufficiente per quello che devi inserire e sta attento a non sforare il limite massimo di caratteri che puoi infilarci.
    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.

  3. #3
    MI sa che allora lascio così, tanto nomi o cognomi più lunghi di 15 caratteri è raro trovarli!!! Grazie lo stesso

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.