
Functions and formatted printing of time and date for RTC8563
Dependencies: mbed
You are viewing an older revision! See the latest version
Klassenvariablen
Statische Klassenvariablen entsprechen im Prinzip globalen Variablen unter Anwendung der Kapselung von
Klassen. Sie existieren unabhängig davon, wie oft eine Klasse instanziiert wird, immer genau einmal. Sie beinhalten damit Daten, die allen Objekten einer Klasse gemeinsamen sind. Auf öffentliche statische Daten einer
Klasse kann jederzeit zugegriffen werden, unabhängig davon, ob schon Instanzen der Klasse vorhanden sind
oder nicht. Damit auf statische Variable zugegriffen werden kann müssen diese public sein.
Besser für den Zugriff auf statische Variable ist es eine Methode für den Zugriff zu implementiert. Diese kann ebenfalls statisch sein (statische Methode).
Z.B. könnte die Anzahl der erzeugten Objekte gezählt werden.
class Date : public RTC8563 { private: uint8_t bcdToUint(uint8_t const nybbles); static int anzahl; // Klassenvariable public: Date() { anzahl++; // Klassenvariable erhöhen } uint8_t GetDay(); static int GetAnzahl() // statische Methode { return anzahl; } };
Und in main:
int Date:: anzahl = 0; int main() { Date rtc; // instanziieren des Objektes rtc pc.printf("Anzahl: %d", Date::GetAnzahl); // Zugriff auf stat. Methode über Klassenname }
See how it works: Statische Variable