我是靠谱客的博主 震动秋天,最近开发中收集的这篇文章主要介绍函数重载遇上默认参数、占位参数函数重载遇上默认参数函数重载遇上占位参数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

函数重载遇上默认参数

会有二异性,不要使用!!

int test01(int*a,int b=10)
{
cout<<"test——1"<<endl;
return 0;
}
int test01(int*a)
{
cout<<"test——2"<<endl;
return 0;
}
int main()
{
int a = 12;
int b = 20;
test01(&a,b);
test01(&a);
//error: call of overloaded ‘test01(int*)’ is ambiguous
}

 

函数重载遇上占位参数

!!! 调用含有占位参数的函数时,必须把占位参数写上  虽然用不到

  1.  占位参数和普通参数一起用  ---- ????

int test01(int*,int b)
{
cout<<"test 01"<<endl;
return 0;
}
int test01(int*a)
{
cout<<"test02"<<endl;
return 0;
}
int main()
{
int a = 12;
int b = 20;
test01(&a,b);
test01(&a);
}

2. 单独靠是不是占位参数判断 重载 ---  那是不可能的

  变成重定义了  ,  这可还行?

int test01(int*)
{
cout<<"test 01"<<endl;
return 0;
}
int test01(int*a)
//error: redefinition of ‘int test01(int*)’
{
cout<<"test02"<<endl;
return 0;
}
int main()
{
int a = 12;
int b = 20;
test01(&a);
test01(&a);
}

3.  有占位参数和没有占位参数  --- yes

int test01(int*)
{
cout<<"test 01"<<endl;
return 0;
}
int test01()
{
cout<<"test02"<<endl;
return 0;
}
int main()
{
int a = 12;
int b = 20;
test01();
test01(&a);
}

 

最后

以上就是震动秋天为你收集整理的函数重载遇上默认参数、占位参数函数重载遇上默认参数函数重载遇上占位参数的全部内容,希望文章能够帮你解决函数重载遇上默认参数、占位参数函数重载遇上默认参数函数重载遇上占位参数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部