服务器之家

服务器之家 > 正文

详解C++函数类型与重载函数

时间:2022-02-28 14:43     来源/作者:shxaz

1.首先对重载函数,明确函数的返回类型不能决定重载函数的类别,即

?
1
2
3
int F(int ,int) ;//一个返回 int 类型的函数
void F(int ,int);//一个无返回值的函数
//两者形参列表相同,返回值类型不同,但两者不构成重载函数

2.注意形参列表中的默认值,使用含默认参数的重载函数时可能会产生二义性。例:

?
1
2
3
4
5
int a = 0;
int Max(int,int);
int Max(int,int,int = 0);
//则对Max(3,5)的调用会报错
 a = Max(3,5);           //错误

另外,对默认参数,应该在函数名第一次给出的时候指定,通常在函数原型中。若已在函数原型中指定默认参数,则函数定义时不能重复给出。

问题:

在一道题中我看到了这样一个问题,简述起来就是让你调用一个值传递的重载函数和一个引用传递的重载函数,

?
1
2
3
4
5
6
7
8
9
10
11
12
13
#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函数就会报错,那如何改变函数类型来避免函数调用不明确呢?

我是这样做的,

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#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);
}

即通过一个无用变量来避免类型相似。

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注服务器之家的更多内容!

原文链接:https://blog.csdn.net/m0_60178502/article/details/121411951

相关文章

热门资讯

2022年最旺的微信头像大全 微信头像2022年最新版图片
2022年最旺的微信头像大全 微信头像2022年最新版图片 2022-01-10
蜘蛛侠3英雄无归3正片免费播放 蜘蛛侠3在线观看免费高清完整
蜘蛛侠3英雄无归3正片免费播放 蜘蛛侠3在线观看免费高清完整 2021-08-24
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
返回顶部