0

指针为重载解决带来了一些特殊问题。

比如说,

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

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

4

3 回答 3

6

f((int*) 0)或者f((char *) 0)

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

于 2009-03-13T00:39:44.453 回答
0

投射它,或者根本不使用它:

f((int*)0);
于 2009-03-13T00:39:59.617 回答
0

调用 f(0) 的问题在于分辨率不明确。您的两个重载函数都采用一个指针,在这种情况下只能通过强制转换来解决。

f((int*)0)

根据您在此处尝试执行的操作,还有其他明确的选项。

于 2009-03-13T00:54:33.793 回答