从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的默认值。就会发生报错!!

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

相关推荐
赴前尘7 分钟前
Go 中 `json.NewEncoder/Decoder` 与 `json.Marshal/Unmarshal` 的区别与实践
开发语言·golang·json
gou1234123411 分钟前
【Golang入门】第一章:环境搭建与Hello World
开发语言·后端·golang
铭....34 分钟前
word批量导出visio图
开发语言·c#·word
寻星探路1 小时前
JAVA与C语言之间的差异(一)
java·开发语言
1001101_QIA1 小时前
【QT】理解QT机制之“元对象系统”
开发语言·c++·qt·算法
a东方青1 小时前
[蓝桥杯C++ 2024 国 B ] 立定跳远(二分)
c++·算法·蓝桥杯·c++20
爱上语文1 小时前
MyBatisPlus(1):快速入门
java·开发语言·数据库·后端·mybatis
2501_915373882 小时前
Java调用C++教程:JNI与JNA两种方式详解
java·开发语言·c++
LuckyRich12 小时前
【cpp-httplib】 安装与使用
c++·http
中微子2 小时前
从C++看JavaScript闭包:执行上下文与作用域的跨语言对比
前端·c++