Memberfunktionen mit gleichem Namen wie freie Funktionen?



  • Hallo,

    ich bin gerade dabei eine kleine Klasse für den Umgang mit Sockets zu schreiben und habe folgendes Problem:

    #include <winsock2.h>
    
    class clSocket
    {
      public:
        ...
        void shutdown(int was)
        {
           shutdown(m_socket,was); //Problem: Der Compiler denkt, das ich die shutdown Funktion der Klasse aufrufen will
        }
      private:
        SOCKET m_socket;
    };
    
    ...
    clSocket socket;
    ...
    socket.shutdown(SD_SEND);
    socket.close();
    

    Wie kann ich dem Kompiler sagen das ich nicht die Klassenfunktion shutdown, sondern die freie Funktion shutdown aufrufen möchte. Ich habe dieses Problem auch noch an ein paar anderen Stellen in der Klasse. Die einfachste Lösung wäre natürlich die Funktion clSocket::shutdown in clSocket::Shutdown umzubennen, aber gibt es auch noch einen anderen Weg?



  • Hi!

    ::shutdown(...)
    

    Alternativ könntest du deine Bezeichnungen anpassen! 😉

    grüße



  • thk, es funktioniert.

    An das anpassen der Bezeichnungen hatte ich auch schon gedacht, aber ich wollte die Winsock Bezeichnungen möglichst beibehalten. Es ist ja eben mein Ziel das die Klasse den WinSock Funktionen ziemlich ähnelt.


Anmelden zum Antworten