C++ 缺省参数、函数重载、名字修饰

本文介绍了C++中的缺省参数,包括概念、分类及注意事项。详细讨论了全缺省参数和半缺省参数的使用规则。此外,还阐述了函数重载的基本概念,解释了C++如何通过名字修饰规则实现函数重载,而C语言不支持的原因。最后提到了在Windows下extern "C"的作用。
摘要由CSDN通过智能技术生成

1.缺省参数

1.1缺省参数概念:

  • 缺省参数是声明或定义函数时为函数的参数指定一个默认值 ;
  • 在调用该函数时,如果没有指定实参则采用该默认值,否则使用指定的实参。
    在这里插入图片描述
  • 所需代码:
#include <iostream>
using namespace std;
void show(int a = 1, int b = 2, int c = 3)
{
	cout << "a=" << a << endl;
	cout << "b=" << b << endl;
	cout << "c=" << c << endl;
}
int main()
{
	show();
	show(10, 20);
	return 0;
}

1.2缺省参数的分类:

  • 全缺省参数:函数的每个参数都有缺省值,传递参数的时候时,可传任意多个参数,且参数的传参是从左依次往右进行
  • 在这里插入图片描述

半缺省参数:函数的部分参数有缺省值,传参时,没有缺省值的必须传参且**缺省值要从右往左依次给**。
在这里插入图片描述

1.3注意:

  • 因为实参是从右往左传所以半缺省参数可以省略左边,不能省略右边,不能间隔给

  • 缺省参数不能在函数声明和定义中同时出现

  • 缺省值必须是常量或者全局变量

  • C语言不支持缺省(因为C语言的编译器不支持)

2.函数重载

2.1函数重载概念

函数重载:是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数 或 类型 或 顺序)必须不同
概括来说就是两点:
在这里插入图片描述
下面的代码就不是函数重载
在这里插入图片描述

-那么为什么上面这个两个函数不能函数重载?为什么C++支持函数重载,而C语言不支持函数重载?

  • C语言没法支持重载是因为同名函数没办法区分,C语言在编译后,只对函数名前面加个_,所以没法区分同名函数

  • C++是通过函数修饰规则来区分函数,只要参数不同,修饰出来的名字就不一样,就支持重载

3.Windows下名字修饰规则

在这里插入图片描述

4.extern “C”

  • 在函数前加extern “C”,意思是告诉编译器将该函数按照C语言的规则来编译

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值