C++ 函数进阶:内联函数、重载、默认参数、占位参数

“ 在现代程序设计中,C++的特性为高效、灵活的代码编写提供了强大的工具。本文主要探讨了C++中的关键概念:内联函数、函数重载以及函数的默认参数,这些特性极大地丰富了编程语言的功能,提高了代码的复用性和执行效率。”

01

内联函数

C++中的内联函数是一种特殊类型的函数,它在编译时会被直接嵌入到调用它的代码中,而不是像普通函数那样进行函数调用。这种方式可以减少函数调用的开销,提高程序的运行效率。

以下是定义内联函数的语法:

inline 返回类型 函数名(参数列表) {

  // 函数体

}

其中,关键字“inline”表示这个函数是一个内联函数。需要注意的是,只有短小精悍的代码才适合使用内联函数。如果内联函数过于复杂,则可能会导致代码膨胀和可读性下降。

另外,在使用类成员函数时,默认情况下编译器会将其视为内联函数。因此,在类定义中声明和实现成员函数时不需要加上“inline”关键字。

1.1、声明内联函数

内联函数必须在定义的时候使用关键字inline修饰,不能在声明的时候使用inline。

// 函数声明时不要使用inline关键字

int mAdd(int x,int y);

int main()

{

    cout<<mAdd(100,200)<<endl;

}

// 内联函数在定义的时候使用inline

inline mAdd(int x,int y)

{

    return x+y;

}

内联函数 在编译阶段 将内联函数中的函数体替换函数调用处,避免函数调用时的开销。

1.2、宏函数和内联函数的区别

宏函数和内联函数都会在适当的位置进行展开,避免函数调用开销。

    •    宏函数在预处理阶段展开,内联函数在编译阶段展开。

    •    宏函数的参数没有类型,不能保证参数的完整性;内联函数有参数类型,能保证参数的完整性。

    •    宏函数没有作用域的限制,不能作为命名空间、结构体、类的成员;内联函数有作用域的限制,能作为命名空间、结构体、类的成员。

1.3、内联函数的注意事项

    1    在内联函数定义的时候加inline修饰。

    2    类中的成员函数默认 都是内联函数(不加inline也是内联函数)。

    3    有时候就算加上inline也不一定是内联函数,能不能成为内联函数有以下的内联函数条件决定:

    ◦    不能存在任何形式的循环语句;

    ◦    不能存在过多的条件判断语句;

    ◦    函数体不能过于庞大;

    ◦    不能对函数取地址。

    4    有时候不加 inline 修饰也有可能是内联函数。

    5    是不是内联函数 由编译器决定。

 

也就是说,我们添加inline修饰只是希望这个函数是内联函数,但是能不能成为内联函数由编译器决定。

02

函数重载

2.1、函数重载的概述

C++函数重载是指在一个类中定义多个同名函数,这些函数的参数列表不同(参数数量、类型或顺序等&

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值