C++每日学习之 重载和默认参数
2012-12-10 16:13
211 查看
作者:曾维
(转载请注明出处http://blog.sina.com.cn/hapcat)
如下面的代码所示,我们知道默认参数是调用int sum(int a=1,int b=2);
函数可以写成sum();重载void类型的int sum(void),调用的时候也是sum();那么究竟是调用哪一个了?
不妨编译一下,探个究竟。
#include<iostream>
using namespace std;
int sum(int a=1,int b=2);
int sum(void);
int main()
{
cout<<sum()<<endl;
getchar();
return 0;
}
int sum(int a,int b)
{
return a+b;
}
int sum(void)
{
return0;
}
结果编译器通不过,错误原因如下图所示:
![](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
call of overloaded ‘sum()'is ambiguous (调用重载函数时有歧义)而不能编译。
(转载请注明出处http://blog.sina.com.cn/hapcat)
如下面的代码所示,我们知道默认参数是调用int sum(int a=1,int b=2);
函数可以写成sum();重载void类型的int sum(void),调用的时候也是sum();那么究竟是调用哪一个了?
不妨编译一下,探个究竟。
#include<iostream>
using namespace std;
int sum(int a=1,int b=2);
int sum(void);
int main()
{
cout<<sum()<<endl;
getchar();
return 0;
}
int sum(int a,int b)
{
return a+b;
}
int sum(void)
{
return0;
}
结果编译器通不过,错误原因如下图所示:
![](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
call of overloaded ‘sum()'is ambiguous (调用重载函数时有歧义)而不能编译。
相关文章推荐
- C++学习 【4.4】 利用函数实现指定的功能---函数的重载、函数模板、有默认参数的函数
- C++学习笔记--默认参数和函数重载不可以同时存在
- C++学习-函数重载和默认参数
- [C++学习笔记]--内联函数、函数重载、函数defualt参数
- C++学习笔记 lesson6 重载String类
- c++ 学习 对重写(覆盖)、重载、多态的理解
- 【ThinkingInC++】38、选择重载还是默认参数
- C++学习笔记39——重载输入输出操作符
- [C++再学习系列] 二元操作符重载
- C++通过构造器,实现对象初始化的两种方法(重载、默认参数)
- C++学习笔记之覆盖、重载、多态的区别
- C++学习笔记14 操作符的重载
- c++学习之函数模板应用和重载
- C++学习笔记之模板(1)——从函数重载到函数模板
- c++学习之运算重载
- C++基础学习笔记----第四课(函数的重载、C和C++的相互调用)
- C++学习之多态及重载(overload),覆盖(override),隐藏(hide)的区别
- C++ 11 学习3:显示虚函数重载(override)
- C++学习之多态及重载(overload),覆盖(override),隐藏(hide)的区别
- C++学习基础八——重载输入和输出操作符