C++里怎样输出重载函数的某个版本的函数指针

其实这样也行int main(){ std::cout \u0026lt;\u0026lt; static_cast\u0026lt;int (*)(int)\u0026gt;(f); // int std::cout \u0026lt;\u0026lt; static_cast\u0026lt;float (*)(float)\u0026gt;(f); // float std::cout \u0026lt;\u0026lt; static_cast\u0026lt;char (*)(char)\u0026gt;(f); // char}只要你给出一个明确的目标,就会帮你做重载决议。这些目标包括:被初始化的对象或者引用被赋值的表达式函数的参数函数的返回值类型转换的目标模板的参数Ref: Address of an overloaded functionp.s. std::cout 直接输出函数指针的话,永远是 true 哟~(因为会先被转成 bool)
■网友
#include \u0026lt;iostream\u0026gt;using namespace std;char f(char){ cout \u0026lt;\u0026lt; "char" \u0026lt;\u0026lt; endl; return 0;}int f(int) { cout \u0026lt;\u0026lt; "int" \u0026lt;\u0026lt; endl; return 0;}float f(float) { cout \u0026lt;\u0026lt; "float" \u0026lt;\u0026lt; endl; return 0;}int main(){ int (*fintp)(int) = \u0026amp;f; fintp(0); //int float(*ffloatp)(float) = \u0026amp;f; ffloatp(0); //float char (*fcharp)(char) = \u0026amp;f; fcharp(0); //char}


    推荐阅读