我是靠谱客的博主 震动秋天,这篇文章主要介绍函数重载遇上默认参数、占位参数函数重载遇上默认参数函数重载遇上占位参数,现在分享给大家,希望可以做个参考。

函数重载遇上默认参数

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

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

 

最后

以上就是震动秋天最近收集整理的关于函数重载遇上默认参数、占位参数函数重载遇上默认参数函数重载遇上占位参数的全部内容,更多相关函数重载遇上默认参数、占位参数函数重载遇上默认参数函数重载遇上占位参数内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部