Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2012
    Messaggi
    5

    [c++] non riesco a far compilare

    Buonasera, premetto che dopo 5 anni ho dovuto riprendere la programmazione in c++ e non ricordo mooolte cose..mi devo incentrare sulla programmazione a oggetti quindi implementazione di classi e stasera ho dei problemi con questo programma in quanto non riesco a capire cosa sbaglio...(x farlo ho dovuto prendere aiuti di qua e di la su internet e da quello che ricordo dovrebbe essere quasi corretto) chiedo una vostra consulenza:

    codice:
    #include <iostream>
    #include <string>
    using namespace std;
    
    class StudUniv{
           private:
           string nome, cognome;
           private:
           char* matricola;
           
           public:
                  StudUniv (string nome, string cognome){
                  nome=nome;
                  cognome=cognome;
                  }
                  
                  public:
                         StudUniv (string nome, string cognome, char* m){
                         nome=nome;
                         cognome=cognome;
                         matricola=m;
                         }
                         public:
                                string legginome(){
                                return nome;
                                }
                                public:
                                       string leggicognome(){
                                       return cognome;
                                       }
                                       public:
                                              string leggimatricola(){
                                              return matricola;
                                              }
                                              public:
                                                     void aggmatricola(char* m){
                                                     if (matricola==0)
                                                     matricola=m;
                                                     }
                                                     public:
                                                            string info(){
                                                            return cognome+" "+nome+"(matr."+matricola+")";
                                                            }
                                                            class StudUnivTest{
                                                                  public:
                                                                         static void main (){
                                                                         StudUniv s1=StudUniv("Antonio", "Bello", "82181");
                                                                         StudUniv s2=StudUniv("Giovanna", "Bella");
                                                                         cout<<(s1.info())<<endl;
                                                                         cout<<(s2.info())<<endl;
                                                                         StudUniv s2.matricola(82182);
                                                                         cout<<"Dopo l'aggiornamento della matricola: "<<endl;
                                                                         cout<<(s2.info());
                                                                         system ("pause");
                                                                         return 0;
                                                                         }
                                                                         }
    LOG ERRORI:
    codice:
    56: error: expected primary-expression before "s2"
    56: error: expected `;' before "s2"
    60: error: return-statement with a value, in function returning 'void'
    60: At global scope:
    61: error: expected unqualified-id at end of input
    61: error: expected `,' or `;' at end of input
    62: error: expected unqualified-id at end of input
    62: error: expected `}' at end of input
    62: In static member function `static void StudUniv::StudUnivTest::main()':
    visto che ricordo molto poco e ho urgente bisogno di questi esempi da portare ad un professore, chiedo a voi! Grazie anticipate della disponibilità e vi prego, non andate tnt pesante con gli insulti!

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    La prossima volta usa i tag code per identare il codice, altrimenti non si capisce niente.

    L'errore che fai è proprio di fondo: in C++ non esiste niente del genere:
    codice:
    class StudUnivTest{
        public:
            static void main (){
            StudUniv s1=StudUniv("Antonio", "Bello", "82181");
            StudUniv s2=StudUniv("Giovanna", "Bella");
            cout<<(s1.info())<<endl;
            cout<<(s2.info())<<endl;
            StudUniv s2.matricola(82182);
            cout<<"Dopo l'aggiornamento della matricola: "<<endl;
            cout<<(s2.info());
            system ("pause");
            return 0;
        }
    }
    Esiste semmai:
    codice:
    int main (int argc, char* argv[] ) {
            StudUniv s1("Antonio", "Bello", "82181");
            StudUniv s2("Giovanna", "Bella");
            cout<<(s1.info())<<endl;
            cout<<(s2.info())<<endl;
            StudUniv s2.matricola(82182);
            cout<<"Dopo l'aggiornamento della matricola: "<<endl;
            cout<<(s2.info());
            system ("pause");
            return 0;
    }
    Poi questo è sballato in pieno:
    codice:
    StudUniv s2.matricola(82182);
    1) perché quel numero dev'essere una stringa;
    2) perché quel metodo non esiste;
    3) perché il metodo aggMatricola(char*) non restituisce niente;
    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
    e non dimenticare il ";" alla chiusura della graffa della classe
    codice:
    class StudUnivTest{
    ...
    };
    ;-)

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2012
    Messaggi
    5
    quindi come dovrei modificare StudUniv s2.matricola? chiedo scusa x il tag, mi sn dimenticato!!

  5. #5
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    E' sufficiente:
    codice:
    s2.aggmatricola("82182");
    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.

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.