rpm8200 Geschrieben 23. November 2007 Geschrieben 23. November 2007 Hallo allerseits, eine Frage die wahrscheinlich schnell beantwortet ist: Ich stolpere in "inside visual c++" von D.J.Kruglinski immer wieder über Methodenaufrufe mit Doppelpunkten ohne vorherige explizite Nennung einer Klasse. Beispiel: HINSTANCE hInstResourceClient = (HINSTANCE) ::GetModuleHandle(NULL); Zwischen (HINSTANCE) und den folgenden zwei Doppelpunkten ist ein blank. Ist dies so zu interpretieren, dass sich die Methode in der klasse befinden muss, in der die genannte Codezeile steht? Bitte um Erleuchtung... Zitieren
Guybrush Threepwood Geschrieben 23. November 2007 Geschrieben 23. November 2007 Nein das hat nichts mit Klassen sondern mit Namensräumen zu tun. :: bedeutet das die Funktion aus dem gloablen Namespace genommen wird. Bsp: #include <iostream> int foo() { return 5; } namespace test { int foo() { return 1; } void ausgabe() { std::cout<<foo(); } void ausgabe2() { std::cout<<::foo(); } } int main() { test::ausgabe(); test::ausgabe2(); return 0; } [/PHP] gibt 1 und 5 aus Zitieren
rpm8200 Geschrieben 23. November 2007 Autor Geschrieben 23. November 2007 Danke für die Erklärung. Das habe ich vollkommen anders verstanden. Muss mir die Namensräume dann also auch nochmal genau ansehen. Nochmals Danke!! Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.