C++笔记 内联函数、默认参数、占位参数

内联函数   

在C中,我们经常把一些短并执行频繁的计算写成 宏函数(带参数的宏),可以用来提高效率,但有其缺点:1.难以发现错误 2.不具有作用域,不能作为类的成员函数。

        内联函数既可以继承宏函数的效率,又可以避免这些缺点。

宏函数与内联函数的比较:宏函数是完全的直接替换,内联函数不是,它能保证代码的完整性

内联函数:是一个真正的函数,具有普通函数的所有行为,在普通函数之前加个inline就行,任何在类中定义的函数都是内联函数,一般不用加inline。内联函数的替换是在编译阶段发生的,不是像宏一样在预处理阶段。

函数的默认参数

C++在声明函数原型的时候可以为一个或者多个参数指定默认的参数值,当函数调用时如果没有传递该参数值,编译器会自动用默认值代替。

//函数的默认参数,指定a的默认值为10,b的默认值为20
int my_add(int a=10 ,int b=20)
{
    return a+b;
}

int main()
{
    cout<<"my_add="<<my_add()<<endl;//结果为30;
    cout<<"my_add="<<my_add(100)<<;//结果为120,a=100,b=20,b启动默认值
    cout<<"my_add="<<my_add(100,300)<<;//结果为400,a=100,b=300,a,b启动默认值
}

注意:

1.函数的参数是从左往右的,如果函数的某一个参数设置了默认参数,那么这个参数之后的所有参数都必须设置默认参数。

int func(int a,int b=10,int c)//默认参数设置少了,报错
{
    ****
}
int func(int a,int b=10,int c=20)//设置正确,不报错
{
    ****
}

2.如果函数声明和定义分开写时,函数声明和函数定义能同时设置默认参数,但推荐在函数声明处设置默认参数。声明和定义在两个不同文件时,函数定义处的默认参数是无效的,声明处的参数才有效。

函数的占位参数

C++在声明函数时,可以设置占位参数,占位参数只有参数类型,而没有形参名。

void func(int x,int y ,int)//第三个参数为占位参数,所以记得给他传参
{
    *****
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值