[C++学习笔记]--内联函数、函数重载、函数defualt参数

本文介绍了C++中的内联函数,它通过将函数体插入到调用处以提高效率,但可能导致程序体积增大。接着讲解了函数重载的概念,允许函数名相同但参数不同,方便编程。最后讨论了函数默认参数,增强了程序的可扩展性,允许在未指定某些参数时使用预设值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        内联函数:首先,我们来理解函数调用。当我们定义一个子函数,然后再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,等需要用的时候,就修改这个传入参数就行了。

 

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值