Klassen untereinander bekannt machen
-
Alles klar, danke. Ich habe auch mal was von einen Bezeichnungsoperator gelesen (::) wozu ist der gut?
-
Der Bezeichnungsoperator
namespaceA::Class B
erlaubt es dir meines Wissens "nur", Objekte aus einem beliebigen Namespace zu referenzieren.
Wenn du dann die
using namespaceA
Derektive benutzt, kannst du dir im Normalfall den Bezeichnungsoperator sparen. Ausser du hast den selben Klassen bzw. Methodennamen in zwei verschiedenen Namespaces.
-
Das klappt nicht nur für Namespaces, sondern auch für statische Elemente einer Klasse:
class schueler { public: static int count; ... }; schueler::count = 47;
-
Das klappt auch für nichtstatische Elemente der Klasse (und jeder Klasse die sich in der Vererbungshierarchie der Klasse befindet). Insofern war dateiname.string::c_str() syntaktisch sogar korrekt, aber überflüssig (im anderen Thread);)
-
Na ok,
wieder mal was gelernt...
-
LordJaxom schrieb:
Das klappt auch für nichtstatische Elemente der Klasse (und jeder Klasse die sich in der Vererbungshierarchie der Klasse befindet). Insofern war dateiname.string::c_str() syntaktisch sogar korrekt, aber überflüssig (im anderen Thread);)
Noob verwirrt
-
Michael E. schrieb:
Noob verwirrt
Bitte?
-
Michael E. schrieb:
LordJaxom schrieb:
Das klappt auch für nichtstatische Elemente der Klasse (und jeder Klasse die sich in der Vererbungshierarchie der Klasse befindet). Insofern war dateiname.string::c_str() syntaktisch sogar korrekt, aber überflüssig (im anderen Thread);)
Noob verwirrt
struct Base { int i; void foo() { i=7; } } struct Derive : public Base { void bar() { Base::foo(); //Aufruf der Funktion aus der Basisklasse cout<<Base::i<<'\n'; //gleiches Spiel... } };
MfG
GPC
-
Lol, nein, ich bin nicht verwirrt. Ich hab t1m0n in dem anderen Thread verwirrt.
-
Michael E. schrieb:
Lol, nein, ich bin nicht verwirrt. Ich hab t1m0n in dem anderen Thread verwirrt.
hehe, dachte mir schon, dass da irgendwas nicht stimmt, aber da ich nicht sicher war...