[C++学习笔记]--内联函数、函数重载、函数defualt参数
来源:互联网 发布:txt文本听书软件 编辑:程序博客网 时间:2024/05/16 16:23
内联函数:首先,我们来理解函数调用。当我们定义一个子函数,然后再main函数中调用,这个时候,我们的参数和返回值都是放在栈里面的。如果,这个函数要反复调用很多次,那么程序的开销很大,效率不是很高。这个时候就有了内联函数的概念了。内联函数和一般函数调用不同的是,每一次函数调用的时候编译器会把函数的代码修改后,直接插入调用语句处。这样的缺点是,会增大程序的体积。
那么内联函数的定义,是在前面加inline。比如:inline int Max(int a, int b) { if ( a > b) return a;else return b; } 这就是一个内联函数。那么我们在调用的时候,比如,K = Max(x, y);编译器,就会在调用处,插入:if(x >y) K = a;else K =b ; 这样的语句。 而不是把参数传入栈,然后再从栈里取出返回值。
函数重载:一个或者多个函数,函数名字相同,但是传入的参数不同,或者类型不同,叫函数的重载。比如
int Max(int a, int b){retrun max};
int Max(float a, float b){retrun max};
int Max(int a, int b,int c){retrun max};
函数重载只在C++中有,优点:让函数命名简单。那么编译器是怎么知道不同的调用呢,是根据传入参数个数的不同和传入参数类型的不同来判断的。要注意的是:函数重载,返回值是什么类型没有影响。但是不能用返回值的不同,参数表的相同来区分函数重载。
函数defualt参数:函数的缺省值,就是在定义函数的时候,可以定义缺省值,在右边不传入值的时候,可以使用缺省值。比如 int cnt(int a, int b = 2, int c = 2); 那么在调用的时候,cnt(2) == cnt (2,2,2);cnt(2,3) == cnt(2,3,2);但是 cnt(2, ,2)非法,只能右边连续缺省。优点:提高程序可扩充性。在我们要增加程序功能,之前我们不用,就可以定义为defualt,等需要用的时候,就修改这个传入参数就行了。
- [C++学习笔记]--内联函数、函数重载、函数defualt参数
- 【从C到C++学习笔记】内联成员函数/成员函数重载及缺省参数
- C++学习笔记(四)--内联函数,引用参数,默认参数,函数重载,函数模板
- VS2010 C++ 学习笔记(一) 引用 函数参数默认值 函数重载 内联inline
- 内联函数,重载函数,默认参数
- C++:内联函数、重载函数、递归、补码
- C++【函数(重载/缺省参数/哑元/内联)】
- 内联函数学习笔记
- 学习笔记 内联函数
- C/C++学习笔记10:内联函数
- 一、C++ 内联函数、重载函数、函数的缺省参数
- 5.C++ 内联函数、参数可变函数、函数重载
- 037day(动态内存分配和内联函数,重载函数,函数参数缺省值的学习)
- C++:布尔类型bool,函数重载、参数缺省值、哑元参数、内联函数、引用
- 函数 默认值、重载、内联
- 内联函数 函数的重载
- 复习笔记13 函数 重载 内联
- C/C++的区别(默认值、内联函数、函数重载、const、引用、参数、返回值)
- Linux常用命令大全
- 背包九讲——0-1背包问题
- XML中DOCTYPE字段的解析
- cell的美化处理
- 使用 C# 开发智能手机软件:推箱子(二十三)
- [C++学习笔记]--内联函数、函数重载、函数defualt参数
- hdu5312
- mysql配置
- 使用centos引导内核错误:kernel: pnp 00:0b: can't evaluate _CRS: 8
- JAVA集合类型(二)
- 在AutoCAD2015如何设置栅格的显示与设置
- Scala详解-----------文文件和正则表达式
- 读书系列----《别让情绪失控害了你》
- Hidden String