2017-10-06 7 views
4

현재 Im은 "connect"라는 메서드가있는 클래스에서 작업하고 있습니다. Im은 winsock 함수를 "connect"라고도합니다. 물론 이것은 컴파일러로 하여금 무엇을해야할지 모르기 때문에 에러를 내게합니다.C++ 외부 함수 이름 겹치기

어떻게 이런 이름 지정 문제를 해결할 수 있습니까?

나는 무슨 일이 일어나고 있는지 가장 잘 묘사 한 이후로 메서드 이름을 유지하고 싶습니다.

winsock 함수 "connect"의 이름을 제어 할 수 없으며 이름을 바꾸는 것이별로 의미가 없다고 생각합니다.

임 꽤 확신이 뭔가 비슷한 다른 어딘가에 대답했지만 나는 너무 바보로 그것을 발견했다.

+0

소켓 함수를 명시 적으로':: connect()'라고 부를 수 있습니다. –

+0

'this-> connect()'를 사용하여 클래스 함수를 사용하십시오. –

+2

이미 고맙습니다. 나는 지금 바보 같아. – Simerax

답변

4

winsock 표준 함수를 호출하는 동안 함수 이름 앞에 범위 확인 연산자 ::을 사용할 수 있습니다. 즉

::connect(....params....); 

그리고 당신은 클래스 함수를 호출 할 때 다음과 같은 방법으로 클래스 함수를 호출 할 수 있습니다 -

this->connect(...params...); 

있다는 점 유의 하시길 바랍니다을, 나는 솔루션은 미래 때문에 코멘트하는 int 제안 요약 한 사용자는 도움을 얻을 수 있습니다.