在C ++中重载的指针问题?

时间:2009-03-13 00:36:35

标签: c++ pointers overloading

指针为重载解析提出了一些特殊问题。

比如说,

void f(int* x) { ... }
void f(char* x) { ...}
int main()
{
    f(0);
}

调用f(0)有什么问题?如何修复f(0)的函数调用?

3 个答案:

答案 0 :(得分:6)

f((int*) 0)f((char *) 0)

但如果你发现自己这样做,我会再看一下你的设计。

答案 1 :(得分:0)

施放它,或根本不使用它:

f((int*)0);

答案 2 :(得分:0)

调用f(0)有什么问题,分辨率是模糊的。两个重载函数都使用指针,在这种情况下只能通过强制转换来解析。

f((int*)0)

根据您在此处尝试做的事情,还有其他选项不含糊不清。