C++笔记(四)--- 内联函数和默认参数

目录

默认参数

内联函数


默认参数

1.默认参数最好在头文件添加,以便提供头文件时可以告知使用者
2.含有默认参数的函数实现时不要填写默认值 
3.默认参数只能从最右侧变量依次赋值(填写默认值的参数右侧不能有无默认值参数)

头文件书写方式

int f(int a, int b = 0);
//int fun(int a, int b = 0; int c);//错误,参数b后面有无默认值的变量c

cpp实现方式

//int f(int a, int b=0)    //错误,函数实现不能填写默认值
int f(int a, int b)        //正确
{
    return a+b;
}

内联函数

内联函数其实是在编译阶段将函数体复制到引用代码引用处,以空间换时间(增加代码雍总的方式提高程序运行效率)

1.内联函数以inline声明
2.inline函数可以在头文件实现
3.inline函数在头文件中实现时是声明,而非定义
4.类函数在类内实现时,默认就是inline函数
5.在头文件中,类外实现类成员函数时,加上inline,仍为inline函数

1.inline函数在头文件中书写方式(a.h)

inline int f(int a)        //此时inline函数相当于函数声明
{
    return a;
}

2.C++类函数在类内实现时,默认就是inline函数

class A
{
public:
    A(int a, int b){ _a = a; _b = b; cout << " A() " << endl;}//此时为内联函数
    void printf(void) { cout << "A::printf() " << endl;} //此时为内联函数
    int sum(void);
private:
    int _a;
    int _b;
};

int A::sum(void)//因为在类外实现,所以不是内联函数
{
    return _a + _b;
}

int main()
{
    A a(10, 20);
    a.sum();
    return 0;
}

3.头文件类外实现函数,加上inline仍为inline函数

class A
{
public:
    A(int a, int b){ cout << "A() " << endl; }
    int sum(void);
private:
    int _a;
    int _b;
};

inline int A::sum(void)  //虽然在类外,但在头文件中实现,且添加了inline,此时的sum仍为inline函数
{
    return _a + _b;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值