关于重载二义性

简介:

C++编译器只根据函数参数表,也就是参数类型和个数进行重载版本的调用匹配,函数返回值不顶用

另外,函数默认参数时会产生二义性,代码必须这样调用才是对的。


#include <iostream>
using namespace std;

int max(int a,int b)
{
	return a<b?b:a;
}

int max(int a,int b,int c=0)
{
	cout<<"c == "<<c<<endl;
	return a<b?b:a;
}

int main()
{
	max(5,3,1);
	return 0;
}

否则就会有如下编译错误|:



相关文章
|
1月前
|
C++
44重载双目运算符
44重载双目运算符
8 0
|
1月前
重载和重写的区别
重载和重写的区别
12 0
|
9月前
重载和重写有什么区别?
重载和重写有什么区别?
46 0
|
9月前
|
C++
C++重载、重写、重定义
C++重载、重写、重定义
71 0
|
5月前
|
C++
39 C++ - 为什么不能重载&&、||
39 C++ - 为什么不能重载&&、||
19 0
|
5月前
|
C++
54 C++ - 重写 重载 重定义
54 C++ - 重写 重载 重定义
16 0
|
7月前
函数的重载
函数的重载
19 0
|
9月前
|
C#
|
10月前
|
编译器 数据安全/隐私保护
构造器及重载
构造器及重载
59 0
|
10月前
以拖拉机论重载
以拖拉机论重载