De standaard C++-bibliotheek bevat een aantal functies en structuren om de programmeurs te helpen in het omgaan met tijd in hun toepassingen. In deze tutorial zal u een C++-klasse genaamd klok die zal dienen als een eenvoudige wrapper rond de time_t en tm structuren gebruikt door C's tijd bibliotheek, en omvatten een eenvoudig voorbeeldprogramma dat zal deze klok klasse gebruik aan output van de systeemtijd op de console.
Wat die u nodig hebt
- C++ Compiler
- C++ Standard Library
- Teksteditor of C++ IDE
Het maken van uw bestanden. Dit programma zal oproepen tot drie bestanden: een headerbestand clock.h te definiëren van de klok klasse, een clock.cpp C++-bronbestand te definiëren van de uitvoering van de klok-klasse, en ten slotte een eenvoudig voorbeeld-programma met behulp van deze klasse in main.cpp.
De klok-klasse te definiëren. Open het headerbestand clock.h en de structuur van de klok-klasse definiëren door met de volgende code invoert.
ifndef _CLOCK_H _CLOCK_H definiërenklasse klok {}
publiek:int getHours()
GAAN
int getMinutes()
GAAN
int getSeconds()
GAAN
std::string getTime()
GAAN
Clock()
endif / _CLOCK_H /
GAAN
privé:
}
GAANDe klasse is gedefinieerd als het hebben van vier belangrijke functies (naast de constructor Clock()). De getHours, getMinutes en getSeconds functies zal elk een ander deel van de tijd ophalen uit de standaardtijd bibliotheek voor C++, met behulp van de huidige systeemtijd als haar gids. De getTime () functie wordt deze omgezet in een tekenreeks Standaard uu, geformatteerd zoals je gewend bent te zien op de digitale klokken.
De ifndef, definiëren, en endif tags zijn optioneel; het is echter een goede gewoonte om te gaan met behulp van deze. Bij de bouw van grotere projecten, met inbegrip van deze tags zal ervoor zorgen dat een bepaald headerbestand slechts één keer in het geheugen is geladen. Dit vermindert het risico van circulaire afhankelijkheid fouten, en maken een gewoonte van altijd inclusief hen in nieuwe headerbestanden nu bespaart u veel hoofdpijn later op de weg.
De klok-klasse implementeren. Uw clock.cpp bestand openen en alle functies die u hebt gedefinieerd in uw headerbestand door het invoeren van de volgende handelingen uitvoeren:
zijnomvatten omvatten \"clock.h\" Clock:: Clock() {}
}int klok:: getHours() {}
time_t seconds = time(NULL)
GAAN
struct tm *timeinfo = localtime(&seconds)
GAAN
return timeinfo->tm_hour
GAAN
}int klok:: getMinutes() {}
time_t seconds = time(NULL)
GAAN
struct tm *timeinfo = localtime(&seconds)
GAAN
return timeinfo->tm_min
GAAN
}
int klok:: getSeconds() {}
time_t seconds = time(NULL)
GAAN
struct tm *timeinfo = localtime(&seconds)
GAAN
return timeinfo->tm_sec
GAAN
}
Std::String klok:: getTime () {}
Std::String tijd
GAAN
Std::stringstream uit
GAAN
uit<>
GAAN
tijd = out.str()
GAAN
out.Str(\"\")
GAAN
tijd += \ ": \"
GAAN
uit<>
GAAN
tijd += out.str()
GAAN
out.Str(\"\")
GAAN
tijd += \ ": \"
GAAN
uit<>
GAAN
tijd += out.str()
GAAN
terug keer
GAAN}
Vanaf de bovenkant is de constructor Clock(). Dit is een zeer eenvoudige klasse, dus er geen noodzaak niets speciaals te doen hier, is dus de constructor wordt leeg gelaten.
Vervolgens zijn de getHours, minuten en seconden functies. Deze functies halen de lokale tijd, gemeten in seconden, GMT, sinds januari van 1970 op de meeste computers, zet dit om in de structuur van de tm geboden door de C++-bibliotheken, en tot slot haalt de uren, minuten en seconden uit deze waarde in een leesbare vorm.
Ten slotte stelt getTime deze waarden samen in een tekenreeks met het gemeenschappelijke formaat die uren, minuten en seconden door dubbele punten gescheiden.
Maak een eenvoudig programma om het te gebruiken. Het main.cpp-bestand openen en het volgende programma schrijven erin.
zijnomvatten \"clock.h\" int main (int argc, char const argv[]) {}
Klok klok = nieuwe Clock()
GAANstd::cout << clock->getTime()
GAAN
return 0
GAAN
}Dit zeer eenvoudige programma maakt een nieuw object van de klok, krijgt de huidige systeemtijd van het en het aan de standaard out-uitgangen. Ten slotte resultaat het 0 aan het besturingssysteem, het werkende systeem dat het programma met succes wordt uitgevoerd zonder fouten informeren.