概述
1.首先对重载函数,明确函数的返回类型不能决定重载函数的类别,即
int F(int ,int) ;//一个返回 int 类型的函数 void F(int ,int);//一个无返回值的函数 //两者形参列表相同,返回值类型不同,但两者不构成重载函数
2.注意形参列表中的默认值,使用含默认参数的重载函数时可能会产生二义性。例:
int a = 0; int Max(int,int); int Max(int,int,int = 0); //则对Max(3,5)的调用会报错 a = Max(3,5); //错误
另外,对默认参数,应该在函数名第一次给出的时候指定,通常在函数原型中。若已在函数原型中指定默认参数,则函数定义时不能重复给出。
问题:
在一道题中我看到了这样一个问题,简述起来就是让你调用一个值传递的重载函数和一个引用传递的重载函数,
#include<iostream> using namespace std; void F(int &a, int &b) { a = a + b; cout << a<<endl; } int F(int a, int b,) { return a + b; } int main(){ cout<<F(a,b); F(a,b); }
此时调用两个F函数就会报错,那如何改变函数类型来避免函数调用不明确呢?
我是这样做的,
#include<iostream> using namespace std; void F(int &a, int &b) { a = a + b; cout << a<<endl; } int F(int a, int b,int c) { return a + b; } int main(){ int a = 10; int b = 20; cout << F(a, b,1)<<endl; F(a,b); }
即通过一个无用变量来避免类型相似。
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注靠谱客的更多内容!
最后
以上就是粗暴鞋垫为你收集整理的详解C++函数类型与重载函数的全部内容,希望文章能够帮你解决详解C++函数类型与重载函数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复