Standard C + + bibliotek inneholder en rekke funksjoner og strukturer for å hjelpe programmerere i å håndtere tid i sine søknader . I denne opplæringen vil du lage en C + + klasse kalt Clock som vil fungere som en enkel wrapper rundt time_t og tm strukturer som brukes av C tid bibliotek , og inkluderer en enkel prøveprogram som skal bruke denne Clock klassen til å sende ut systemet tid til konsollen . Du trenger
C + + Compiler
C + + Standard Library
tekst editor eller C + + IDE
Vis flere instruksjoner
en
Lag dine filer. Dette programmet vil kalle for tre filer : en clock.h header -fil for å definere Clock klassen , en clock.cpp C + + kildefil å definere gjennomføringen av Clock klassen , og til slutt et enkelt eksempel program ved hjelp av denne klassen i main.cpp .
2
Definer Clock klassen . Åpne clock.h header filen og definere strukturen av Clock klasse ved å skrive inn følgende kode inn i den
# ifndef _CLOCK_H # define _CLOCK_H
klasse Clock {public : . Int getHours ( ) ; int getMinutes (); int getSeconds ();
std :: string getTime ();
Clock (); private: };
# endif /* _CLOCK_H * /
klassen har blitt definert som å ha fire hovedfunksjoner (i tillegg til konstruktøren Clock ( ) ) . De getHours , getMinutes og getSeconds funksjoner vil hver hente en annen del av tiden fra C + + standard tid bibliotek , ved hjelp av dagens system tid som føringen . Den getTime ( )-funksjonen vil formatere disse inn i en standard TT: MM: . SS streng , som du er vant til å se på digitale klokker
ifndef , definere, og endif tags er valgfrie , men det er en god praksis for å komme inn ved hjelp av disse. Når du bygger større prosjekter , blant disse kodene vil sørge for at en gitt header filen er lastet inn i minnet bare én gang . Dette reduserer risikoen for sirkulær avhengighet feil , og gjør en vane å alltid inkludere dem i nye header filer nå vil spare deg for mange hodepine senere på nedover veien .
3
Gjennomføre Clock klassen . Åpne din clock.cpp fil, og implementere alle funksjonene du har definert i din header -fil ved å skrive inn følgende : en
# include # include # include "klokke . h "
Clock :: Clock ( ) { }
int Klokke :: getHours ( ) { time_t sekunder = tid ( NULL) ; struct tm * timeinfo = lokaltid (& sekunder ), tilbake timeinfo - > tm_hour ;}
int Klokke :: getMinutes ( ) { time_t sekunder = tid ( NULL) ; struct tm * timeinfo = lokaltid (& sekunder ), tilbake timeinfo - > tm_min ;
< p > }
int Klokke :: getSeconds ( ) { time_t sekunder = tid ( NULL) ; struct tm * timeinfo = lokaltid (& sekunder ), tilbake timeinfo - > tm_sec ;
}
std :: string Clock :: getTime ( ) { std :: string tid, std :: stringstream ut, ut << getHours (); time = out.str (); out.str ("" ) ; tid + = " :"; ut << getMinutes (); tid + = out.str (); out.str ( " "); tid + = " :"; ut << getSeconds ( ) ; tid + = out.str (); retur tid ;
}
Starter på toppen er konstruktøren , Klokke ( ) . Dette er en veldig enkel klasse , så det er ikke nødvendig å gjøre noe spesielt her, så konstruktøren er tomt .
Neste er getHours , minutter og sekunder funksjoner. Disse funksjonene hente lokal tid , målt i sekunder , GMT , siden januar 1970 på de fleste datamaskiner , konverterer det til TM strukturen gitt av C + +- biblioteker , og til slutt henter timer, minutter og sekunder ut av denne verdi i et menneske - lesbar form.
slutt setter getTime disse verdiene sammen i en streng med felles format som skiller timer, minutter og sekunder med kolon.
4
Lag et enkelt program å bruke det. Åpne din main.cpp fil og skriv følgende program i den.
# Include # include " clock.h "
int main ( int argc , røye * const argv [ ,"] ) { Clock * klokke = ny klokke (); std :: cout << klokke - > getTime (); return 0 ;}
Denne svært enkle programmet oppretter en ny klokke objekt , får dagens system tid fra det , og sender det til standard ut . Endelig den gir 0 til operativsystemet , for å informere operativsystemet at programmet var vellykket uten feil .