Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    306

    [c++] utilizzo della classe time: alcuni problemi

    ciao a tutti stavo incominciando a studiare le strutture e le classi
    questo che riporto è il primo programma presentato per l'argomento classi e mi ha creato non poche difficoltà nel capirlo.
    Il mio compilatore mi riporta una serie di errori, anche avevendolo copiato dal libro

    codice:
    #include <iostream>
    using namespace std;
    
    class tempo{                                     forward declaration "calss tempo"  
       pubblico:
    	tempo();     //costruttore    multiple markers at this line 
    	void settatempo (int,int, int);    //imposta ora,minuti,secondi
    	void stampamilitare();     //visualizza orario in formato militare
    	void stampastandard();   //visualizza orario in formato standard
    
       private:
    	int ora;     multiple markers at this line 
    	int minuto;
    	int secondo;
    };
    
    //il costruttore di tempo inizializza ogni dato a zero
    
    tempo::tempo{} {ora=minuto=secondo=0;}   multiple markers at this line 
    
    //imposto un nuovo valore di tempo utilizzando
    //il formato militare.Controlla la validit dei dati ed
    //imposta i valori non validi a 0
    
    void tempo::settatempo(int o,int m ,int s)   mi riporta errore dicendo che è privato 
    {
    	ora=(o>=0 && o<24) ? o:0;    ora non è dichiarata  
    	minuto=(m>=0 && m<60) ? m:0;
    	secondo=(s>=0 && s<60) ? s:0;
    }
    
    //stampa tempo in formato militare
    
    void tempo::stampamilitare()    mi riporta errore dicendo che è privato 
    {
    	cout<<(ora<10 ? "0" : "")<<ora<< ":"
    	<<(minuto<10 ? "0" : "")<<minuto;
    
    }
    
    void tempo::stampastandard()    mi riporta errore dicendo che è privato 
    {
    cout<<((ora==0 ||ora==12)?12 : ora %12)
    		<<":"<<(minuto<10 ? "0":"")<<minuto
    		<<":"<<(secondo<10 ? "0":"")<<secondo
    		<<(ora<12?" AM ":" PM ");
    }
    
    
    
    int main()
    {
    	tempo t;                        
    	cout <<" il tempo militare iniziale è";               per tutti questi cout mi dice within this contest  
    
    	t.stampamilitare();
    
    	cout<<"\n il tempo standard iniziale è";
    	t.stampastandard ();
    
        t.settatempo(13,27,6);
    	cout<<"il tempo militare dopo è";
    	t.stampamilitare();
    
    	cout<<"\n il tempo standard dopo è";
    		t.stampastandard();
    
    		return 0;
    }
    a tutti questi errore che non capisco si aggiungono poi i comandi in se stessi
    uno per tutti credo che sia

    codice:
    void tempo::settatempo(int o,int m ,int s)
    si aggiunge il :: perchè la funzione settatempo è privata?

    poi nel main si definisce t come oggetto della classe tempo,
    perchè si fa uso delle funzioni precedute dal t.nomefunzione?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480

    Re: [c++] utilizzo della classe time: alcuni problemi

    Ciao ... un paio d'errori ...

    Non

    pubblico:

    in italiano, ma

    public:

    e poi, in

    tempo::tempo{} {ora=minuto=secondo=0;}

    quelle parentesi devono essere tonde

    tempo::tempo() {ora=minuto=secondo=0;}
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    306
    veramente grazie

    così gli errori si son tolti tutti grazie




    per le domande mi potresti dire qualcosina?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480

    Re: [c++] utilizzo della classe time: alcuni problemi

    Se ti riferisci a queste domande

    Originariamente inviato da Alfoxx

    codice:
    void tempo::settatempo(int o,int m ,int s)
    si aggiunge il :: perchè la funzione settatempo è privata?

    poi nel main si definisce t come oggetto della classe tempo,
    perchè si fa uso delle funzioni precedute dal t.nomefunzione?
    allora,

    :: e' un operatore (scope resolution) che indica l'appartenenza del membro settatempo alla classe tempo;

    Per quanto riguarda t.nomefunzione, t e' l'oggetto e nomefunzione il suo metodo ... qual e' il dubbio?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    306

    Re: Re: [c++] utilizzo della classe time: alcuni problemi


    :: e' un operatore (scope resolution) che indica l'appartenenza del membro settatempo alla classe tempo;
    ma quindi quando si ragiona con le classi, per utilizzare una funzione membro in questo caso "settatempo" devo sempre utilizzare il ::




    Per quanto riguarda t.nomefunzione, t e' l'oggetto e nomefunzione il suo metodo ... qual e' il dubbio?
    questo formalismo non l'avevo mai incontrato prima

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480

    Re: Re: Re: [c++] utilizzo della classe time: alcuni problemi

    Originariamente inviato da Alfoxx
    ma quindi quando si ragiona con le classi, per utilizzare una funzione membro in questo caso "settatempo" devo sempre utilizzare il ::
    No ... che vuoi dire?

    Tu l'hai usato per "definire" i metodi della tua classe, non per utilizzare un oggetto della classe ... per farlo (cioe' per utilizzare un oggetto di una certa classe) hai usato la forma

    t.membro

    questo formalismo non l'avevo mai incontrato prima
    Strano ... si usa con le strutture ... mai studiato le strutture?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    il "::" si usa in definizione di un metodo della classe o in utilizzo di uno stesso se è statico (cioè che non ha bisogno di un oggetto di invocazione)

    questo formalismo non l'avevo mai incontrato prima
    non è un formalismo.. se vuoi usare un metodo di un istanza della classe dovrai riferirti ad un oggetto specifico.. quindi t.metodo() indica che usi il metodo "metodo()" dell'oggetto "t"

    ps: queste sono cose che devi studiare sul libro di testo e sono le basi dello studio delle classi del c++

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    306
    tutta questa roba mi è stata presentata nelle classi dal libro, e non nelle strutture

    cmq si , ho iniziato a studiare le strutture, però il programma utilizzato non viene spiegato


    intanto ancora un grazie
    vedo se mi torna tutto

  9. #9
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    ciò non toglie che se stai studiando su un libro (si spera) se hai incontrato tale codice allora si stanno spiegando le classi e come tale dovrebbero esserci tutte queste info nei primi paragrafi

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.