关于重载二义性

简介:

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

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



相关文章
|
4月前
|
Java
方法的重载
方法的重载
30 1
|
4月前
|
编译器 C#
C#重载详解
C#重载详解
31 0
|
4月前
|
算法 安全 编译器
【C++运算符重载】深入理解C++中的类型转换与重载
【C++运算符重载】深入理解C++中的类型转换与重载
71 0
|
4月前
|
C++
44重载双目运算符
44重载双目运算符
25 0
C++重载、重写、重定义
C++重载、重写、重定义
80 0
|
10月前
|
C++
39 C++ - 为什么不能重载&&、||
39 C++ - 为什么不能重载&&、||
31 0
|
10月前
|
C++
54 C++ - 重写 重载 重定义
54 C++ - 重写 重载 重定义
28 0
|
12月前
4.【拷贝构造函数与重载】
4.【拷贝构造函数与重载】
29 1
|
12月前
函数的重载
函数的重载
25 0