栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++函数的重载

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++函数的重载

函数重载的概念

函数重载允许使用相同的函数名定义多个函数,条件是这些函数的形参列表各不相同。

所有函数都有签名,函数的签名由函数名称和形参列表确定。

程序中所有函数都必须有唯一的签名,否则不能编译程序。

#include "pch.h"
#include 
#include 

int add(int, int);
double add(int, double);
double add(double, int);
double add(double, double);

int main()
{
	std::cout << add(3, 4) << std::endl;
	std::cout << add(3.0, 4) << std::endl;
	std::cout << add(3, 4.0) << std::endl;
	std::cout << add(3.0, 4.0) << std::endl;
}

int add(int a, int b)
{
	return a + b;
}

double add(int a, double b)
{
	return a + b;
}

double add(double a, int b)
{
	return a + b;
}

double add(double a, double b)
{
	return a + b;
}
引用类型和重载选择

重载函数中的形参可以使用引用类型,必须确保编译器能够选择一种合适的重载形式。

一般来说不能重载给定类型type与此类型lvalue引用type&。

void f(int n);
void f(int& n);

当用类型为int的实参调用f(),编译器无法确定应该调用哪个函数,因为这两个函数都使用。

编译器能够区分以下原型的重载函数

void f(int& n);    //lvalue引用参数
void f(int&& n);    //rvalue引用参数

当实参为lvalue时,编译器将始终选择f(int& n)函数。

当实参为rvalue时,编译器将始终选择f(int&& n)函数。

rvalue引用类型形参主要用来处理特定问题,类的定义时,会遇到这些特定问题。

何时重载函数

 函数重载的意图:允许使用单个函数名,以不同的操作数执行相同的操作。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/923814.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号