Sockets unter linux (Unklarheiten mit LibFunktionen)
-
Tach @ all:
Folgende Frage stellte sich mir als ich mir ein Codebeispiel zur SocketProgrammierung unter Linux aunschaute:
bool Socket::send ( const std::string s ) const { int status = ::send ( m_sock, s.c_str(), s.size(), MSG_NOSIGNAL );soweit alles klar, aber was hat dass
::sendzu bedeuten(also die "::" vor dem send)
Ich weiss, dass "send" eine Funktion aus der "Socket Libary" von Linux ist.
Bin mir aber nicht sicher ob man jetzt funktionen aus einer Header mit :: aufruft.Meine Frage:
was hat das "::" für eine Sinn?THX für eure Antworten!!!
-
Das :: bedeutet, daß die Funktion aus dem globalen Namensraum verwendet werden soll (in deiner Socket-Klasse überdeckt die Methode send() die gleichnamige Funktion aus der Socket-Lib, deswegen mußt du kennzeichnen, daß du nicht die Methode rekursiv aufrufen willst).
-
OK. Vielen Dank für die Antwort!
-
Also wenn ich das jetzt richtig verstanden habe,
kann ich die "::" weglassen wenn ich den Namen meiner KlassenMethode ändere?
-
Hallo
Genau. Es reicht schon das S groß zu schreiben.
bis bald
akari
-
Jetzt ist alles klar!
THX nochmal für eure Beiträge!!!