C ++의 과부하에 대한 포인터 문제?
-
22-07-2019 - |
문제
포인터는 과부하 해상도에 특별한 문제를 제시합니다.
예를 들어,
void f(int* x) { ... }
void f(char* x) { ...}
int main()
{
f(0);
}
f (0)에게 전화하는 것이 무엇입니까? f (0)의 함수 호출을 어떻게 수정하려면?
해결책
f((int*) 0)
또는 f((char *) 0)
그러나 당신 이이 일을한다면 나는 당신의 디자인을 다시 살펴볼 것입니다.
다른 팁
캐스트하거나 전혀 사용하지 마십시오.
f((int*)0);
F (0)을 호출하는 데 문제가있는 것은 해상도가 모호하다는 것입니다. 오버로드 된 기능 모두이 경우 캐스트를 통해서만 해결할 수있는 포인터를 사용합니다.
f((int*)0)
여기서하려는 일에 따라 모호하지 않은 다른 옵션이 있습니다.
제휴하지 않습니다 StackOverflow