C++, statische vs. namespace vs. singleton

Ich schon lese viele Beiträge und Artikel alle über das Netz, aber ich konnte nicht finden eine definitive Antwort über dieser.

Ich habe einige Funktionen mit ähnlichen Zwecken, die ich haben will aus dem globalen Bereich. Einige von Ihnen müssen öffentlich, andere sollte privat sein (weil Sie nur Hilfsfunktionen für die "öffentlichen" sind).
Darüber hinaus habe ich nicht nur Funktionen, sondern auch die Variablen. Sie sind nur erforderlich, durch die "private" Helfer-Funktionen und sollte privat sein, auch.

Nun gibt es die drei Möglichkeiten:

  • machen eine Klasse mit alles statisch (contra: Potenzial "Nicht aufrufen member-Funktion ohne Objekt" - nicht alles muss statisch sein)
  • machen eine singleton-Klasse (contra: ich muss das Objekt)
  • machen einen Namensraum (kein eigenes Stichwort -, warum sollte ich es in einem namespace, dann?)

Was wäre der Weg für mich? Möglichkeit der Kombination einiger dieser Möglichkeiten?

Dachte ich an etwas wie:

  1. macht ein singleton ist, die statische Funktionen verwenden die Hilfsfunktion des singleton-Objekt (ist das möglich? Ich bin noch innerhalb der Klasse, aber der Zugriff auf ein Objekt dieser Art)
  2. Konstruktor aufgerufen, am programm starten, initialisiert alles (-> sicherstellen, dass die Statik Zugriff auf die Funktionen der singleton-Objekt)
  3. Zugang zu den öffentlichen Funktionen nur durch MyClass::PublicStaticFunction()

Dank.

InformationsquelleAutor blubberbernd | 2011-04-26
Schreibe einen Kommentar