mmmh....ich bevorzuge klar das Singleton verfahren, weil ich das andere nicht verstehe
Also Du willst eine globale Funktion einfach in einen Namespace packen und dem User nur den Header mit den Funktionen geben, nicht aber den mit den Daten?
Wenn das so funktioniert ist das sicherlich auch eine möglichkeit.
Aber wie willst Du das anstellen das man doch das D3D Device Objekt bekommt???
Du müsstest eine Funktion in DHM_D3D.h haben die das Objekt aus impl_DHM_D3D.h zurückgibt und schon hätte der User wieder etwas aus der eigentlich nicht benutzbaren Struktur....
und müsstest zusätzlich, damit der Compiler nicht meckert, die Datei impl_DHM_D3D.h einbinden.
Naja ich würde Singletons nehmen. Damit holt man sich dann einfach eine Referenz auf die Klasse von überall her und fertig.
Und mit nem Reference Counting System kann man noch die Sicherheit erhöhen.
Das einzige was dagegen spricht ist, dass der User sich wirklich daran halten muss immer getInstance() und Release() aufzurufen.
Gruß
Bastian
PS ich hoffe ich hab das Data Hiding mit Modulen richtig verstanden