c++中两个函数函数名相同,参数类型和参数个数也相同,但是函数类型不同,那它们是重载函数吗?

问题描述:

c++中两个函数函数名相同,参数类型和参数个数也相同,但是函数类型不同,那它们是重载函数吗?
同名函数是不是要求函数类型必须相同

函数重载是是根据函数的参数列表区分函数的版本,返回值不同是不能区分的.比如 int fun( int a,int b);在编译的时候,编译器编译函数,生成一个类似"_fun_int_int"的名称放在库中,以便程序调用的时候使用.如果你想重载v...那同名函数又是怎么要求的呢函数的参数列表是重载的标识符。int fun(int a, dobule b); //编译后生成 :_fun_int_doubleint fun(int a, int b);// 编译后生成 : _fun_int_int根据生成的名称来指定调用哪个版本的函数;fun(1,1.2); // 进行匹配,第一个函数为最佳匹配,然后根据 _fun_int_double 找到函数