缺省参数和函数重载

目录

一、缺省参数

二、函数重载


一、缺省参数

缺省参数是在声明和定义时为函数的参数指定一个缺省值。在调用函数时如果没有指定实参,则采用该实参的缺省值,否则使用该指定的实参,缺省参数分为全缺省和半缺省参数。

①全缺省就是全部参数给缺省值

cpp 复制代码
#include<iostream>
using namespace std;

void Func1(int a = 10, int b = 20, int c = 30)
{
	cout << "a=" << a << endl;
	cout << "b=" << b << endl;
	cout << "c=" << c << endl;
}

int main()
{
	Func1();
	return 0;
}

②半缺省就是部分参数给缺省值,C++中规定半缺省参数必须从右往左依次连续缺省,不能间隔跳跃给缺省值

cpp 复制代码
#include<iostream>
using namespace std;

void Func2(int a, int b = 20, int c = 30)
{
	cout << "a=" << a << " ";
	cout << "b=" << b << " ";
	cout << "c=" << c << endl;
}


int main()
{
	Func2(2);
	Func2(2,3);
	Func2(2,3,4);
	return 0;
}

注意:函数的声明和定义分离时,缺省参数不能在函数参数的声明和定义中同时出现,规定必须函数声明给缺省值

二、函数重载

C++支持在同一作用域中出现同名函数,但是要求这些同名函数的形参不同

(一)参数个数不同

(二)参数类型不同

cpp 复制代码
#include <iostream>
using namespace std;

int Add(int left, int right)
{
	return left + right;
}

//参数类型不同
double Add(double left, double right)
{
	return left + right;
}

//参数类型不同,对于返回值没有要求
long Add(long left, long right)
{
	return left + right;
}

(三)参数个数相同、类型一样、仅顺序不同

cpp 复制代码
void Func1(int i, char ch)
{

}
//参数顺序不同
void Func1(char ch, int i)
{

}

注意:函数只是返回值不同,并不构成重载

cpp 复制代码
//只是返回值不同,不能构成重载
//int	Func1()
//{
//
//}
void Func1()
{
}

(一)什么是函数重载?

在同一作用域里,可以有函数名相同,参数不相同(参数的类型、顺序、个数),对于返回值不要求

(二)c++里面是如何实现函数重载的?c里面为什么不支持?

相关推荐
2601_956121971 天前
二分算法(知识点+题目)
c++·算法
蒙奇·D·路飞-1 天前
OpenClaw:开源的《合金弹头》精神续作与终极本地部署指南
c++·开源·mfc
咸鱼翻身小阿橙1 天前
现在这个四通道出现的问题
学习
小星星闪亮登场1 天前
2026萌新联赛第三场-- (郑州轻工业大学)
数据结构·c++·经验分享·算法·贪心算法·排序算法·深度优先
梓䈑1 天前
【用 Vibe Coding 实现的 C++17 在线判题系统】前端开发 + Web 自动化测试
前端·c++·ai编程
云贝教育-郑老师1 天前
OceanBase 是如何搞定海量数据分片(Sharding)的?
学习·oceanbase·dba
冻柠檬飞冰走茶1 天前
PTA基础编程题目集 7-8超速判断(C++语言实现)
开发语言·数据结构·c++·算法
编程圈子1 天前
电机驱动开发学习23. 保护体系与故障状态机
驱动开发·学习
TunerT_TQ2 天前
Valhalla 静态工程审阅 #018|MMCV 源码证据驱动评测【大厂开源基础设施特辑】
c++·开源·mfc·#计算机视觉·#商汤科技·#openmmlab·#静态源码审计
别动我齐刘海2 天前
Day6 unitree_G1人形机器人GMR—— MotionInput
c语言·c++·人工智能·学习·机器学习·机器人·github