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

    [c++] problema con le classi

    ho dichiarato una classe "time" con all'interno varie funzioni.. il mio problema sta che nel main quando dichiaro il costruttore "time t;" mi da un errore che non riesco a risolvere.. ogni guida,libro e quant'altro mi dice che è esatto, ma non riesco a capire perche non si compila

    Ps è l'unico errore che mi segnala
    pss l'errore che mi da è (expected ';' before "t")

    grazie per l'aiuto

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    62
    Ciao,
    se non posti il codice sorgete di main() e della classe ( per lo meno quello significativo per il problema in questione ) e' molto difficile risponderti !


  3. #3
    ecco il codice

    codice:
    #include <iostream>
     using namespace std;
     class time
            { 
          public:
                  time();
                  void Tempo(int , int , int );
                  void ora_militare(int ,int );
    void ora_standard(int ,int ,int );
           private:
                   int ore;
                   int minuti;
                   int secondi;
           }; time::time() {ore=minuti=secondi=0;}
            void time::Tempo(int h,int m,int s)
     {      ore=(h>=0 && h<24)?h:0;      minuti=(m>=0 && m<59)?m:0;      secondi=(s>=0 && s<59)?s:0; }
      void time::ora_militare(int h, int m)
     { 
         cout<<(h<10?0:"")<<ore<<":"<<(m<10?0:"")<<minuti; }
      void time::ora_standard(int h,int m,int s) 
    {      cout<<((ore==0||ore==12)?12:ore%12)<<":"<<(m<10?0:"")<<minuti<<      ":"<<(s<10?0:"")<<secondi<<(h<12?"AM":"PM");
     }  
    int main() 
    {     
    time t;     
    cout<<"Inizialmente l'orario militare e' ";
         t.ora_militare();
         cout<<"mentre quella standard e' "; 
        t.ora_standard();
         t.Tempo(13,2,14);
         t.ora_militare();
         t.ora_standard(); 
        t.Tempo(99,99,3);
         t.ora_militare(); 
        t.ora_standard();
         system ("pause"); 
        return 0; }

  4. #4
    chiama la classe Time , con la t maiuscola.
    Ricordati di mettere a posto le chiamate alle funzioni membro con gli argomenti corretti.
    ciao
    sergio

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    62
    Pensavo che fosse solo cattivo gusto far iniziare in nome di una classe con una lettera minuscola, invece a quanto pare e' anche un errore ! VVoVe:

    Comunque sia attento anche alle chiamate di funzioni membro, gli errori sono riportati nel codice qui sotto ( che compila, ma che non ho provato ) :

    codice:
    #include <iostream>
    using namespace std;
    
    class Time
    {
    public:
    	Time();
    	void Tempo(int, int, int );
    	void ora_militare(int, int );
    	void ora_standard(int, int, int );
    private:
    	int ore;
    	int minuti;
    	int secondi;
    };
    
    Time::Time() : ore(0), minuti(0), secondi(0) {}
    
    void Time::Tempo(int h,int m,int s)
    {
    	ore = (h>=0 && h<24)?h:0;
    	minuti = (m>=0 && m<59)?m:0;
    	secondi = (s>=0 && s<59)?s:0;
    }
    
    void Time::ora_militare(int h, int m)
    {
    	cout<<(h<10?0:"")<<ore<<":"<<(m<10?0:"")<<minuti;
    }
    
    void Time::ora_standard(int h,int m,int s)
    {
    	cout<<((ore==0||ore==12)?12:ore%12)<<":"<<(m<10?0:"")<<minuti<<":"<<(s<10?0:"")<<secondi<<(h<12?"AM":"PM");
    }
    
    int main()
    {
    	Time t;
    	cout<<"Inizialmente l'orario militare e' ";
    	//t.ora_militare(); // <-- errore! stai cercando di chiamare una funzione
    			        // ora_militare membro di Time senza argomenti, mentre
    				// l' unica funzione ora_militare() richiede 3 argomenti int !
    	cout<<"mentre quella standard e' ";
    	//t.ora_standard();   // idem.
    	t.Tempo(13,2,14);
    	//t.ora_militare();     // idem.
    	//t.ora_standard();   // idem.
    	t.Tempo(99,99,3);
    	//t.ora_militare();     // idem.
    	//t.ora_standard();   // idem.
    	//system ("pause");   // nel mio calcolatore devo togliere questa istruzione altrimenti
                                         // non compila ( non so se la dichiarazione si trovi in altri header 
                                         // che non hai incluso o non e' compatibile con il mio sistema ).
    	return 0;
    }

  6. #6
    ok va thx mille

  7. #7
    il nome delle classi può iniziare con qualinque carattere ammesso, il problema è che time è una funzione dichiarata in time.h .
    ciao
    sergio

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.