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?