关于重载二义性

简介:

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;
}

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



相关文章
|
6月前
|
Java
方法的重载
方法的重载
52 1
|
26天前
重载双目运算符
重载双目运算符
10 0
|
6月前
|
编译器 C#
C#重载详解
C#重载详解
52 0
|
6月前
|
C++
44重载双目运算符
44重载双目运算符
42 0
C++重载、重写、重定义
C++重载、重写、重定义
90 0
|
12月前
|
C++
39 C++ - 为什么不能重载&&、||
39 C++ - 为什么不能重载&&、||
36 0
|
12月前
|
C++
54 C++ - 重写 重载 重定义
54 C++ - 重写 重载 重定义
31 0
4.【拷贝构造函数与重载】
4.【拷贝构造函数与重载】
36 1
函数的重载
函数的重载
28 0