C语言初阶教程中,如何实现缺省参数与函数重载的技巧?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1519个文字,预计阅读时间需要7分钟。
目录一. 缺陷参数
1.概念
2.分类
3.注意事项
二. 函数重载1.概念
2.C++支持函数重载的原理
3.Linux的修饰规则
4.总结
一. 缺陷参数1.概念
C++中,缺陷参数指的是在函数或方法中可能出现的错误或异常情况,这些情况可能导致程序运行不稳定或崩溃。2.分类
缺陷参数可以分为多种类型,如类型错误、范围错误、空指针引用等。3.注意事项
在使用缺陷参数时,应注意检查参数的有效性,避免程序在运行时出现异常。二. 函数重载
1.概念
函数重载是指在同一作用域内,允许存在多个同名函数,但它们的参数列表不同。2.C++支持函数重载的原理
C++通过函数的参数列表来区分同名函数,参数列表不同的函数可以执行不同的操作。3.Linux的修饰规则
Linux系统中,函数的修饰规则与C++一致,即通过参数列表来区分同名函数。4.总结
函数重载是C++中一种强大的特性,它可以提高代码的可读性和可维护性。在使用函数重载时,应注意参数列表的不同,避免混淆。目录
- 一.缺省参数
- 1.概念
- 2.分类
- 3.注意
- 二.函数重载
- 1.概念
- 2.C++支持函数重载的原理
- Linux的修饰规则
- 总结
一.缺省参数
C++祖师爷在用C写代码的时候,就觉得有些地方用着很不方便,于是就在C++设计了缺省参数,在实现一些功能时,用这个就方便了许多。
1.概念
缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时:
a.如果没有指定实参则采用该形参的缺省值;
b.否则使用指定的实参。
例:
2.分类
a.全缺省参数:函数的所有参数都是缺省参数。
//全缺省参数 void func(int a=10,int b=20) { return a+b; }
b.半缺省参数:函数的部分参数是缺省参数,并不是非得有一半是缺省参数。
//半缺省参数 void func(int a,int b=20,int c=10) { return a+b+c; }
3.注意
a.缺省参数是从右往左,所以不能隔着给;
b.函数传参是从左往右,所以不能跳着传参;
c.函数的声明和定义不能同时出现缺省参数,只能在声明出现,定义不能出现;
d.缺省值必须是常量或是全局变量。
二.函数重载
先来讲讲重载在生活中的例子。
简单来说就是一个词的不同意思,我们来看一个笑话吧:
国有两个体育项目大家根本不用看,也不用担心。一个是乒乓球,一个是男足。前者是“谁也赢不了!”,后者是“谁也赢不了!
同一词”谁也赢不了“,表达的却是不同的意思,这就是重载。
函数重载:是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名数;
特点:
a.同名
b.参数的类型,个数,类型顺序不同
c.与返回值是否相同无关
注意:函数中有缺省参数也可以认为是函数重载;
例:
void func() { cout << 1 << endl; } void func(int a = 10) { cout << 10 << endl; } //但这种情况要注意,如果这样调用函数:func(),就会报错
如果使用不当,会造成这个错误:
注意以下情形并不构成函数重载:
int add(int a, int b) { return a + b; } int add(int b, int a) { return a + b; }
至于为什么不构成,这就涉及到函数重载的原理了,下面让我们一起来看看函数重载的原理吧。
2.C++支持函数重载的原理
C++编译器中,调用函数时,不是直接用函数名,而是会对函数名进行修饰,根据修饰后的调用函数。而C编译器并不会对函数进行修饰,它是直接用函数名来调用函数的,所以C不支持函数重载。
所以上述不构成函数重载的情形就得到了解释。
不同环境下的修饰规则不同,vs的较为复杂,这里以Linux的修饰规则为例
Linux的修饰规则
_Z+函数名的长度+函数名+参数类型的第一个字母
void func(int a,double b); //Linux环境下修饰后的:_Z4funcid
总结
到此这篇关于C++初阶教程之缺省参数与函数重载的文章就介绍到这了,更多相关C++缺省参数与函数重载内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!
本文共计1519个文字,预计阅读时间需要7分钟。
目录一. 缺陷参数
1.概念
2.分类
3.注意事项
二. 函数重载1.概念
2.C++支持函数重载的原理
3.Linux的修饰规则
4.总结
一. 缺陷参数1.概念
C++中,缺陷参数指的是在函数或方法中可能出现的错误或异常情况,这些情况可能导致程序运行不稳定或崩溃。2.分类
缺陷参数可以分为多种类型,如类型错误、范围错误、空指针引用等。3.注意事项
在使用缺陷参数时,应注意检查参数的有效性,避免程序在运行时出现异常。二. 函数重载
1.概念
函数重载是指在同一作用域内,允许存在多个同名函数,但它们的参数列表不同。2.C++支持函数重载的原理
C++通过函数的参数列表来区分同名函数,参数列表不同的函数可以执行不同的操作。3.Linux的修饰规则
Linux系统中,函数的修饰规则与C++一致,即通过参数列表来区分同名函数。4.总结
函数重载是C++中一种强大的特性,它可以提高代码的可读性和可维护性。在使用函数重载时,应注意参数列表的不同,避免混淆。目录
- 一.缺省参数
- 1.概念
- 2.分类
- 3.注意
- 二.函数重载
- 1.概念
- 2.C++支持函数重载的原理
- Linux的修饰规则
- 总结
一.缺省参数
C++祖师爷在用C写代码的时候,就觉得有些地方用着很不方便,于是就在C++设计了缺省参数,在实现一些功能时,用这个就方便了许多。
1.概念
缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时:
a.如果没有指定实参则采用该形参的缺省值;
b.否则使用指定的实参。
例:
2.分类
a.全缺省参数:函数的所有参数都是缺省参数。
//全缺省参数 void func(int a=10,int b=20) { return a+b; }
b.半缺省参数:函数的部分参数是缺省参数,并不是非得有一半是缺省参数。
//半缺省参数 void func(int a,int b=20,int c=10) { return a+b+c; }
3.注意
a.缺省参数是从右往左,所以不能隔着给;
b.函数传参是从左往右,所以不能跳着传参;
c.函数的声明和定义不能同时出现缺省参数,只能在声明出现,定义不能出现;
d.缺省值必须是常量或是全局变量。
二.函数重载
先来讲讲重载在生活中的例子。
简单来说就是一个词的不同意思,我们来看一个笑话吧:
国有两个体育项目大家根本不用看,也不用担心。一个是乒乓球,一个是男足。前者是“谁也赢不了!”,后者是“谁也赢不了!
同一词”谁也赢不了“,表达的却是不同的意思,这就是重载。
函数重载:是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名数;
特点:
a.同名
b.参数的类型,个数,类型顺序不同
c.与返回值是否相同无关
注意:函数中有缺省参数也可以认为是函数重载;
例:
void func() { cout << 1 << endl; } void func(int a = 10) { cout << 10 << endl; } //但这种情况要注意,如果这样调用函数:func(),就会报错
如果使用不当,会造成这个错误:
注意以下情形并不构成函数重载:
int add(int a, int b) { return a + b; } int add(int b, int a) { return a + b; }
至于为什么不构成,这就涉及到函数重载的原理了,下面让我们一起来看看函数重载的原理吧。
2.C++支持函数重载的原理
C++编译器中,调用函数时,不是直接用函数名,而是会对函数名进行修饰,根据修饰后的调用函数。而C编译器并不会对函数进行修饰,它是直接用函数名来调用函数的,所以C不支持函数重载。
所以上述不构成函数重载的情形就得到了解释。
不同环境下的修饰规则不同,vs的较为复杂,这里以Linux的修饰规则为例
Linux的修饰规则
_Z+函数名的长度+函数名+参数类型的第一个字母
void func(int a,double b); //Linux环境下修饰后的:_Z4funcid
总结
到此这篇关于C++初阶教程之缺省参数与函数重载的文章就介绍到这了,更多相关C++缺省参数与函数重载内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!

