Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
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 //