C++入门:重载运算符与函数比较及缺省参数应用
需积分: 10 79 浏览量
更新于2024-08-19
收藏 2.77MB PPT 举报
"重载运算符与一般函数的比较-C++入门课件"
在C++编程中,重载运算符和一般函数是两种不同的方法,但它们在某些方面具有相似性。首先,两者都可以作为类的成员函数,用来扩展类的功能。它们都可以用于实现相同的操作,只不过重载运算符通常使得代码更加简洁易读。
重载运算符是一种特殊的形式,它使得我们可以用已有的运算符执行特定于类的操作。例如,`+` 运算符可以被重载以实现对象的相加。在给定的例子中,`A` 类有两个版本的 `+` 运算符:一个作为成员函数,另一个作为友元函数。成员函数版本的 `operator +` 直接在当前对象上调用,而友元函数版本则接收两个对象并返回一个新的对象。这在调用时表现得非常明显,如 `a3 = a1 + a2;`,这里 `+` 运算符被重载为对象的组合。
另一方面,一般函数(非运算符重载)通常通过函数名来调用,如 `AddA` 函数。它们需要显式地通过对象名和函数名来调用,如 `a3.AddA(a1, a2);`。这种调用方式更为传统,但可能不如重载运算符那么直观。
接下来讨论的是具有缺省参数值的函数。在C++中,我们可以在定义函数时为参数提供缺省值。这允许我们在调用函数时省略某些参数,如果它们没有被显式地传递,编译器会使用预设的缺省值。例如,`fac` 函数接受一个整数 `n` 作为参数,默认值为2。当我们只调用 `fac()` 时,它将使用默认值计算阶乘,输出2。同样,`area` 函数接受长度和宽度作为参数,都有缺省值,可以让我们在未指定所有参数的情况下调用函数。
使用具有缺省参数值的函数时需要注意几点:
1. 缺省参数必须从右向左设置,即参数列表的最右边可以有缺省值,但越靠左的参数不能有缺省值。
2. 在函数原型声明时,可以不提供参数名,但必须提供参数类型和缺省值。
3. 缺省值只能在函数原型定义时设定一次,后续的定义不应包含缺省值。
此外,函数的重载是C++中的一个重要特性,它允许在同一作用域内存在多个同名函数,但每个函数的参数列表必须有所不同,通常是参数个数、参数类型或者参数顺序的差异。重载函数使得我们可以根据传入的参数类型或数量自动选择合适的函数进行调用。然而,仅仅返回类型的不同是不足以区分重载函数的,因为编译器是根据函数的参数列表来决定调用哪个函数的。
在给出的例子中,`fun` 被重载为两个版本,一个接受两个整数参数并返回它们的和,另一个接受一个整数并返回其平方。在 `main` 函数中,这两个版本的 `fun` 根据传入的参数数量被正确调用,分别输出了8和25。
C++的重载运算符和一般函数都是为了增强代码的表达性和灵活性,而具有缺省参数值的函数则是为了简化函数调用,允许在某些情况下不必提供所有参数。这些特性共同构成了C++中丰富的函数和操作符机制,使程序员能够更加高效地编写代码。
2019-01-24 上传
314 浏览量
2020-09-05 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
我的小可乐
- 粉丝: 26
- 资源: 2万+
最新资源
- 正整数数组验证库:确保值符合正整数规则
- 系统移植工具集:镜像、工具链及其他必备软件包
- 掌握JavaScript加密技术:客户端加密核心要点
- AWS环境下Java应用的构建与优化指南
- Grav插件动态调整上传图像大小提高性能
- InversifyJS示例应用:演示OOP与依赖注入
- Laravel与Workerman构建PHP WebSocket即时通讯解决方案
- 前端开发利器:SPRjs快速粘合JavaScript文件脚本
- Windows平台RNNoise演示及编译方法说明
- GitHub Action实现站点自动化部署到网格环境
- Delphi实现磁盘容量检测与柱状图展示
- 亲测可用的简易微信抽奖小程序源码分享
- 如何利用JD抢单助手提升秒杀成功率
- 快速部署WordPress:使用Docker和generator-docker-wordpress
- 探索多功能计算器:日志记录与数据转换能力
- WearableSensing: 使用Java连接Zephyr Bioharness数据到服务器