23. November 200718 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 200718 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 200718 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!!
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.