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...
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
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!!
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden