C++ -- 函数的高级用法

本文介绍了C++中的函数高级用法,包括内联函数以提高执行效率,通过函数重载实现同名函数的不同功能,以及利用默认参数简化调用。同时强调了内联函数的限制、函数重载的实现原理以及默认参数的添加规则和注意事项。
摘要由CSDN通过智能技术生成
1, 内联函数
  • 代码量小(1 - 5行), 无复杂逻辑(if, while等), 这样的函数适合作为内联函数
  • 优点:内联函数在调用时,直接用函数代码替换函数调用,避免频繁出入栈, 提高执行效率, 以空间换时间
  • 用法:在函数声明或函数实现时,在函数前加关键字 inline 注意:内联函数的声明和实现必须写在同一个文件中(可以写在头文件中)
  • 内联函数必须是和函数体声明在一起,才有效。 使用 inline 关键字只是建议编译器把这个函数当作内联函数处理 但是决定权在编译器, 如果这个函数太复杂, 不适合作为内联函数, 那么编译器还是把它当作普通函数
2, 函数重载
  • 在C语言中, 函数名都是唯一的, 若有函数重名, 则无法编译
  • 但在c++中, 函数名可以相同, 只要函数的形参列表不同, 这就是两个函数
  • 因为编译器在编译器, 把函数的参数也提取出来了
  • 例如
  • C语言中, 编译时函数被提取为_swap
    C++中, 被提取为_swap_int_int
    所以只要形参列表不同, 这就是两个函数
3, 函数的默认参数
  • 在C++中, 函数可以有默认参数
  • 例如: int add(int a = 10; int b = 20; int c = 30) {return a+b+c};
  • 注意: 默认参数只能在函数定义处添加
  • 默认参数的添加必须从右往左
    因为添加默认参数的目的是为了减少传参
    而函数参数是从左往右匹配的
    例如: int add(int a = 10; int b = 20; int c) {return a+b+c};
    此时如果 add(1, 2); 那么第三个参数c就没有值, 肯定就会报错
    如果 add(1, 2, 3); 那么设置默认参数就没有意义了,因为还是必须传3个参数
    注意: 在重载函数中使用默认参数要特别注意
4,函数传参的总结
  • 基本类型(int char double)和枚举类型一般用值传递
  • 结构体, 类的对象一般用指针或引用传递
  • 数组类型一般用指针传递
  • 小技巧: 当函数参数超过7个以上, 比较多的时候, 可以把它封装在一个结构体中
    然后传指针或引用

测试代码

#define _CRT_SECURE_NO_WARNINGS 1

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值