:: Operator
-
Hallo,
ich weiß, daß sich meine folgende Frage nicht auf die MFC bezieht, aber ich hoffe mal Ihr drückt ein Auge zu und klährt mich trotzdem auf.
Ich habe immer noch nicht genau verstanden, was es bedeutet, wenn ein '::' vor einer Methode steht.
z.B. ::Methode(...);
1. Wozu ist so eine Methode gut ? Ist das eine Art Klassenmethode ? Zu welcher Klasse gehört sie ?
2. Wo ist so eine Methode implementiert ? (In welcher Datei / Klasse)
3. Kann man so eine Methode von überall aufrufen ?
4. Wann benutzt man so was ?Danke euch !!!
-
So kann man aus einer Klasse raus eine nicht-Methode der Klasse aufrufen.
z.b.
void test() { } class a { void test() { test(); // test von Klasse a aufrufen ::test(); // fkt. test aufrufen } }
[ Dieser Beitrag wurde am 28.10.2002 um 12:55 Uhr von Nemesyzz editiert. ]
-
Aha,
ist dies der einzige Verwendungsgrund oder gibt es da noch was ?Ich meine wenn ich in der Klasse keine Methode Test hätte, könnte ich ja statt ::Test(); auch einfach Test(); schreiben.
-
Ja könntest du.
Mit ::test ist aber sichergestellt das niemals die Methode test von der Klasse aufgerufen wird. Mit :: greift man immer auf alles was global ist zu. Geht auch mit variablen.HINSTANCE hinst; int WINAPI WinMain(HINSTANCE hinst,...) { ::hinst = hinst; }
[ Dieser Beitrag wurde am 28.10.2002 um 16:02 Uhr von Nemesyzz editiert. ]
-
Für statische Methoden braucht man das auch:
class A { public: static int GetNumber() { return 4711; } }; void main() { int i = A::GetNumber(); }
[Edit]Hey cool mein 1111-ter Beitrag.[/Edit]
[ Dieser Beitrag wurde am 28.10.2002 um 16:16 Uhr von thomas80d editiert. ]
-
OK, danke euch. Jetzt hab ich es verstanden !