函数的名称是指向函数的指针...
但是在函数重载的情况下,两个函数的名称是相同的。
那么这个名称指向哪个函数呢?
发布于 2011-05-31 12:05:21
这取决于上下文;否则它是模棱两可的。请参见this example (修改后不包括以下内容):
void foo(int a) { }
void foo(int a, char b) { }
int main()
{
void (*functionPointer1)(int);
void (*functionPointer2)(int, char);
functionPointer1 = foo; // gets address of foo(int)
functionPointer2 = foo; // gets address of foo(int, char)
}
你可以用很多方法来做到这一点,但是#1规则呢?
避免强制转换!
否则,您将破坏类型安全,并可能在那时或以后自食其果。
(问题可能是调用约定、您没有注意到的随机更改等)
https://stackoverflow.com/questions/6182885
复制相似问题