Namespace
-
Wie benutze ich namespace mit einer Klasse?
Ich möchte das die Klasse nur in einer Headerdatei verwendet werden kann. (wegen inline)
FUNKTION() { Klasse->Methode(); }
Aber das Objekt ist auch in anderen Dateien zu sehen. Jetzt habe ich mir gedacht das mit Namenspace zu machen. Doch das Objekt ist immer noch zu sehen.
-
So meinst du?
namespace Name { // Hier deine Klasse class A { }; } // Zugriff jetzt über: Name::A NewObj();
-
Hi,
ambesten du verwendest
using namespace std; // Das std muss natürlich durch Name ersetzt werden. War ja nur ein Beispiel.
-
c++eus schrieb:
Hi,
ambesten du verwendest
using namespace std;
lol
-
Strogij schrieb:
So meinst du?
namespace Name { // Hier deine Klasse class A { }; } // Zugriff jetzt über: Name::A NewObj();
Ja in etwa so.
Bei mir ist aber NewObjekt ein Zeiger
Name::A *NewObjekt();
und das was mich stört. Es ist auch möglich ohne Name:: über den Zeiger auf die Methoden zuzugreifen.
Oder mache ich was falsch?
-
Also dafür sind die Namespaces nicht gedacht. Du machst ja ein neues Objekt daraus und zwar aus Name::[] heraus. Was du danach an Objekten hast sind eigenständige Dinge, sonst würde es nur Unfug geben.
-
für die sichtbarkeit verwende public und private.
ein namespace hat damit nichts zu tun. innerhalb eines namensraums müssen die verwendeten namen eindeutig sein.