Veröffentlicht 23. November 200717 j 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...
23. November 200717 j 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
23. November 200717 j 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!!
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.