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


All wikipages