Standarden C + + -bibliotek indeholder en række funktioner og strukturer til at hjælpe programmører i forbindelse med tiden i deres ansøgninger. I denne tutorial vil du skabe en C + + klasse kaldet Clock , der vil tjene som en simpel wrapper omkring time_t og tm strukturer, der anvendes af C tid bibliotek og omfatter en enkelt stikprøve program, der vil bruge denne Clock klasse til at sende systemet tid til konsollen . Ting du skal
C + + Compiler
C + + Standard Library
Text editor eller C + + IDE
Vis Flere Instruktioner
1
oprette dine filer. Dette program vil kræve tre filer : en clock.h header fil til at definere Clock klassen, en clock.cpp C + + source fil, der definerer gennemførelsen af Ur klasse, og endelig et simpelt eksempel program ved hjælp af denne klasse i main.cpp .
2
Definer Clock klassen. Åbn clock.h header fil og definere strukturen af Clock klassen ved at indtaste følgende kode ind i det
# ifndef _CLOCK_H # define _CLOCK_H
class Clock { public: . Int getHours () ; int getMinutes (); int getSeconds ();
std :: string getTime ();
Clock (); privat : };
# endif /* _CLOCK_H * /
klassen er blevet defineret som havende fire store funktioner ( foruden konstruktøren Clock () ) . De getHours , getMinutes og getSeconds funktioner vil hver modtage en anden del af tiden fra C + + standard tid bibliotek, hjælp af det nuværende system med sit vejledning. Den getTime () funktion vil formatere disse i en standard HH : MM: . SS streng, som du er vant til at se på digitale ure
ifndef , definere, og endif tags er valgfri, men det er en god praksis for at komme ind ved hjælp af disse. Når man bygger større projekter , herunder disse tags vil sikre, at en given header fil indlæses i hukommelsen kun én gang. Dette mindsker risikoen for cirkulære afhængighed fejl , og gøre det til en vane altid at medtage dem i nye header filer nu vil spare dig for mange hovedpine senere nede ad vejen.
3
Gennemføre Clock klasse . Åbn din clock.cpp fil , og gennemføre alle de funktioner , du har defineret i din header fil ved at indtaste følgende : Hej
# include # include # include " ur. h "
Clock :: Ur ( ) { }
int Ur :: getHours () { time_t sekunder = tid ( NULL ), struct tm * timeinfo = localtime (& sekunder) ; tilbagevenden timeinfo -> tm_hour ;}
int Ur :: getMinutes () { time_t sekunder = tid ( NULL ), struct tm * timeinfo = localtime (& sekunder) , tilbagesendelsespolitik timeinfo -> tm_min ,
< p >}
int Ur :: getSeconds () { time_t sekunder = tid ( NULL ), struct tm * timeinfo = localtime (& sekunder) , tilbagesendelsespolitik timeinfo -> tm_sec ,
} < br >
std :: string Clock :: getTime () { std :: string tid std :: stringstream ud , out << getHours (); tid = out.str (); out.str ("" ), tid + = " :"; out << getMinutes (); tid + = out.str (); out.str ("" ), tid + = " :"; out << getSeconds () , tid + = out.str (); tilbagevenden tid
}
fra toppen er konstruktøren , Ur (). Dette er en meget simpel klasse, så der er ingen grund til at gøre noget særligt her, så konstruktøren er tomt .
Next er getHours , minutter og sekunder funktioner. Disse funktioner hente lokal tid , målt i sekunder , GMT, siden januar 1970 på de fleste computere , konverterer det til TM struktur , som C + + biblioteker , og endelig henter timer, minutter og sekunder ud af denne værdi i et menneske læsbar form .
Endelig getTime sætter disse værdier sammen i en streng med det fælles format , som adskiller timer, minutter og sekunder af kolon .
4
Oprette et simpelt program at bruge det . Åbn din main.cpp fil og skrive følgende program ind i det.
# Include # include " clock.h "
int main ( int argc , char * const argv [ ,"] ) { ur * ur = nyt ur (); std :: cout << clock -> getTime (); return 0 ;}
Denne meget simpelt program opretter en ny ur objekt , får nuværende system tid fra det , og udlæser det til standard ud . Endelig tilbage 0 til operativsystemet, for at informere det operativsystem, at programmet blev kørt uden fejl.