C++中的一个多态函数问题!初学者提问

来源:百度知道 编辑:UC知道 时间:2024/07/07 06:18:33
C++中的一个多态函数问题!如下:

假设我定义了两个函数,函数名一样,函数参数不一样:

void func( int a, int b){ //.....}

void func( int &a, int &b){ //.....}

请问:我在主函数里 写代码 :
s1=3; s2=5;
func( s1,s2);,这个时候 程序会调用哪个函数呢?

在c++语法中这样做是错误的 因为编译器无法分辨你调用的是哪个函数
还有也不可以这样
func(int *a)
func(int a)
还有可以强制类型转换的类型也是不可以重载的

Ambiguous知道吗,也就是二义性,C++里面最烦的就是这个玩意儿……所以当你知道了不能这么用的时候,你就应该在以后学习的过程中避免犯这个错误~~