函数的名称是指向该函数的指针...
但在函数重载的情况下,两个函数的名称是相同的......
那么这个名字指向哪个函数呢?
这取决于上下文;否则它是模棱两可的。看这个例子 http://www.java2s.com/Code/Cpp/Function/Assigningfunctionpointerstooverloadedfunctions.htm(除以下内容外均已修改):
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)
}
您可以通过多种方式做到这一点,但第一条规则是什么?
避免强制转换!
否则你会破坏类型安全,并可能在当时或以后搬起石头砸自己的脚。
(问题可能来自调用约定、您没有注意到的随机更改等)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)