In C und C++ können Variablen, Konstanten und Funktionen als >>static<< (statisch) definiert werden.
Dies bewirkt, dass mit >>static<< deklarierte Elemente pro Klasse nur einmal existieren und nicht wie üblich einmal für jede Instanz angelegt werden.
* statische Funktionen sind nur innerhalb des Quelltextes sichtbar
* statische Variablen und Konstanten behalten auch zwischen Funktionsaufrufen ihren Wert bei. So können etwa statische Variablen dazu verwendet werden um die Anzahl der erstellten Instanzen ihrer Klasse zu zählen.
// Definition einer modulglobalen Variablen static int modVar; // Definition einer modulglobalen Funktion bzw. Methode static void *function(void)
// Klasse.h class Klasse { static int staticVar; static void staticFunction(); }; // Klasse.cpp int Klasse::staticVar = 100; Klasse::staticFunction();
// Programmbeispiel eines Funktionspointers mit statischen Methoden static char *func1(void) { return "function1"; } static char *func2(void) { return "function2"; } int main( int argc, char *argv[] ) { // Funktionspointer char *(*get) (void); // Funktionsaufruf Nr.1 get = func1; printf("%s ", get() ); // gibt function1 aus // Funktionsaufruf Nr.2 get = func2; printf("%s ", get() ); // gibt function2 aus return0; }