Kann mir jemand sagen, was der Zweck ist, statische Funktionen außerhalb der Klassen zu deklarieren? Was ist der Unterschied zwischen diesen 2? Gibt es irgendwelche Vorteile für die Verwendung von statischen in dieser Situation?Statische Funktionen außerhalb der Klassen
static void someRandomFunction();
int main()
{
someRandomFunction();
return 0;
}
und
void someRandomFunction();
int main()
{
someRandomFunction();
return 0;
}
Gibt es irgendwelche Probleme, wenn man im Beispiel einen nicht-anonymen Namespace verwendet (den 'statischen' behalten)? – Hydren
Nein. Das 'static' behält die Funktion im Dateibereich nur bei interner Verknüpfung. Die Suche nach Namen in der Datei erfolgt weiterhin mit den üblichen Namespace-Regeln. Achten Sie jedoch in diesem Fall wie üblich auf ODR-Verletzungen. –