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

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

相关推荐
DonciSacer8 分钟前
第一章-Rust入门
开发语言·后端·rust
我是一只鱼02239 分钟前
LeetCode算法题 (移除链表元素)Day15!!!C/C++
c++·算法·leetcode·链表
Lenyiin22 分钟前
《 C++ 点滴漫谈: 三十六 》lambda表达式
c++
西京刀客24 分钟前
golang常用库之-标准库text/template
开发语言·后端·golang
落榜程序员36 分钟前
浅拷贝和深拷贝的区别
java·开发语言
ATaylorSu39 分钟前
C++ -- 实现日期类
c++·学习
renhl2521 小时前
C++11新特性_委托构造函数
java·前端·c++
purrrew1 小时前
【Java ee初阶】多线程(7)
java·开发语言
?!7141 小时前
数据结构之哈夫曼树
c语言·数据结构·c++·算法
元亓亓亓2 小时前
Java后端开发day39--方法引用
java·开发语言