从C语言开始的C++编程生活(2)

前言

本系列文章承接C语言的学习,需要**++有C语言的基础++** 才能学会哦~

第2篇主要讲的是有关于C++的**++缺省参数++** 和++函数重载++ 。
C++才起步,都很简单呢!

目录

前言

缺省参数

基本语法

缺省参数的作用

函数重载

基本语法

重载的作用


缺省参数

++缺省参数++ ,++也可以叫做默认参数++,是C语言无法实现的一种特殊功能。

基本语法

cpp 复制代码
void Func(int a, int b = 20, int c = 0)
{
    printf("%d", a + b + c);
}

这段代码,声明并且定义了一个Func函数,我们可以发现,其中参数b和参数c都被赋了值。这里的b和c就是缺省(默认)参数。

而使用缺省参数的函数有两种:

①全缺省,所有参数都是缺省参数。

②半缺省,++左边一部分++ 参数是++普通参数++,剩余的是缺省参数。

!!注意 !!半缺省参数只能++统一全部排列在参数列表的右侧++ ,且缺省参数和普通参数++不可以交替放置++!!

缺省参数的作用

cpp 复制代码
int main()
{
    Func(30);//缺省参数不传参
    Func(1);//缺省参数部分传参 
    Func(1, 2, 30);//全部传参
    return 0;
}

使用了缺省参数的函数,在传参时,可以有多种选择。

①缺省参数全部不传参。此时,这些参数++使用声明时定义的默认值++ (如a = 0, b = 20)。

②缺省参数全部传参 。此时,++所有参数使用传入的值++ 。

③缺省参数部分传参。此时,++传了参的缺省参数使用传入的值++ ;++其它的使用默认值++。

!!注意 !!传参只能从左到右按顺序传,不可以跳跃传参。

cpp 复制代码
//!!错误示范!!
//想要第二个参数不传值
Func(1, ,3);//!!是错误的!!

//!!正确示范!!
//想要第二个参数不传值,也就是想第二个参数用默认值
Func(1,20,3);//传入默认值即可

函数重载

概念上,和JAVA的方法重载是一样的。

基本语法

cpp 复制代码
void func()
{
    printf("haha\n");
}
void func(int a)
{
    printf("%d\n",2*a);
}

++当两个函数同名++ ,++而且参数列表不同的时候++ ,这两个函数++构成重载++。

什么是不同的参数列表?
++类型不同 or 顺序不同 or 个数不同++
其中变量标识符的不同,无法构成重载。

重载的作用

程序根据传入的参数,自行匹配应该传入到哪个函数里。

cpp 复制代码
int main()
{
    func();//没有参数,对应的是上段代码第一段定义的参数列表
    func(2);//有一个参数2,对应的是上段代码第二段定义的参数列表
}

输出结果是:

haha

4

!!注意 !!全缺省函数和无参数函数不可以构成重构!!

cpp 复制代码
//!!错误 !!
void func()
{
	printf("hhhhhhhh");
}
void func(int a = 0)
{
	printf("xxxxxxxx\n");
}
int main()
{
	func();
}

此时,程序不知道func()是要调用上一段定义还是调用下一段定义,去使用a的默认值。就会发生报错!!

❤~~本文完结!!感谢观看!!欢迎来我博客做客~~❤

相关推荐
xiaolang_8616_wjl11 分钟前
c++游戏_宝可梦大世界(源代码)
开发语言·c++·游戏
Leinwin34 分钟前
Copilot Studio 实战:多模型选择、GitHub Copilot harness 计费与 Copilot Credits 额度管理
开发语言·c#
余额瞒着我当琳38 分钟前
C++异常,异常的概念,异常抛出与捕获,RAII 和智能指针的设计思路,C++标准库一些指针的使用
java·开发语言·c++·算法
東隅已逝,桑榆非晚40 分钟前
map和set的使用
数据结构·c++·笔记·学习
严谨的麻辣烫1 小时前
固定 IP 稳定性如何检测?使用 Python 实现网络连通性与耗时监控
开发语言·数据库·php
FuckPatience1 小时前
C# Winform 使用Label循环显示闪烁
开发语言·c#
骑着蜗牛撵大象3271 小时前
大模型 SDK 编译就崩?用 CMakeLists 把 httplib、JSON 与 OpenSSL 装配成可复用的 ChatServer
android·java·c++·http·json·cmake·大模型sdk
码小猿的CPP工坊2 小时前
C++跨平台开发之基于wxWidgets开发GUI程序简介-002
开发语言·c++