Franz Pucher / HIM0Board

You are viewing an older revision! See the latest version

Statische Elemente

Während Elementvariablen für jedes Objekt einmal angelegt werden, existieren statische Elementvariablen pro Klasse exakt einmal, egal wie viele Objekte dieser Klasse erzeugt werden. Sie werden angelegt, bevor das erste Objekt der Klasse erzeugt wird. Eine Anwendung für eine solche Variable könnte das Zählen der instanziierten Instanzen sein. Dazu wird die statische Variable in jedem Konstruktor inkrementiert und in jedem Destruktor dekrementiert. In der statischen Variable kann dann abgelesen werden, wie viele Objekte dieser Klasse derzeit existieren.

title:

class DigitalAus : public DigitalOut
{
    public:
    DigitalAus(PinName ld) : DigitalOut(ld){
        staticCounter++;
    }
    
    static int howMany() {    // Statische Methode
        return staticCounter;
    }
    private:
    static int staticCounter;   // Statische Elementvariable
};

int DigitalAus::staticCounter = 0;

DigitalAus led(LED1);   // Erzeugen von drei Instanen
DigitalAus led2(LED2);
DigitalAus led3(LED3);

int main() {
    while (1) {
        //
        printf("Anzahl Instanzen: %d\n",  DigitalAus::howMany());  // Ausgabe: 3
        //

All wikipages