Hannes Hauptmann
Hannes Hauptmann

Reputation: 324

In member function, wrong function gets "executed"

I have a header file with the class "Connection" in namespace "ns". The "Connection" class has a function called "connect", which internally uses the Winsock "connect" function. When I want to define the function in the .cpp file, I get error because of wrong parameters. Like it doesn't want to "use" the connect function from the winsock API, just the member function.

Looks like this in the .cpp file: (not final)

bool ns::Connection::connect(char IP[],unsigned short Port)
{
    SOCKADDR_IN server_addr;
    memset(&server_addr,0,sizeof(SOCKADDR_IN));

    server_addr.sin_family = AF_INET;
    server_addr.sin_port = Port;
    server_addr.sin_addr.s_addr = inet_addr((const char*)IP);

    connect(client,&server_addr,0); // here comes the error
}

Upvotes: 8

Views: 143

Answers (1)

Serve Laurijssen
Serve Laurijssen

Reputation: 9733

Use the global namespace to call the correct one:

::connect(client,&server_addr,0);

Upvotes: 9

Related Questions