一、类中的函数重载:
1、函数重载的温习:
函数重载的本质为相互独立的不同函数
C++中通过函数名和函数参数确定函数调用
无法直接通过函数名得到函数重载函数的入口地址
函数重载必然发生在同一个作用域中
2、类中的成员函数可以进行重载:
构造函数的重载
普通成员函数的重载
静态成员函数的重载
这里有一个问题:全局函数,普通成员函数以及静态成员函数之间是否可以构成重载?
从上面回顾重载函数的知识中,我们要注意到一点函数重载必须发生在同一作用域里面(其他两点问题不大),所以的构造函数和普通成员函数是可以构造重载的,而与全局函数是不可以构成重载的。
代码测试:
输出结果:
3、重载的意义:
通过函数名对函数功能进行提提示
通过参数列表对函数用法进行提示
扩展系统中已经存在的函数功能
这里用c语言里面的拷贝字符串函数strcpy来进行扩展演示:
代码版本一:
输出结果:
这里虽然结果是输出多了,但是这个程序同时也报了段错误,因为buf所能存储的能力小于s;所以为了解决这个问题,你肯定第一时间想到strncpy函数:
代码版本二:
输出结果:
这个函数就保护程序的安全性;但是我在c++里面既然学习了函数重载,那么久可以在原有的函数基础上进行扩展:
代码版本三:
输出结果:
二、总结:
类的成员函数之间可以进行重载;
重载必须发生在同一个作用域中;
全局函数和成员函数不能构成重载关系;
重载的意义在于扩展已经存在的功能。
审核编辑:符乾江
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
相关推荐
电子发烧友网站提供《EE-112:模拟C++中的类实现.pdf》资料免费下载
发表于 01-03 15:15
•0次下载
,即使没有数据返回,也得写 void。 第二个函数名。 C语言的函数名绝对不能重名,除了用上 weak 这样的黑科技。同一个项目中,函数重名就会提示重复定义。
发表于 11-29 10:25
•366次阅读
简单的总结一下 C++ 新手容易犯的一些编程错误,给新人们提供一个参考。 1 有些关键字在 cpp 文件中多写了 对于 C++ 类,一些关键字只要写在 .h 中就好,cpp 中就不用再
发表于 11-15 12:42
•410次阅读
探索字节队列的魔法:多类型支持、函数重载与线程安全代码难度指数:文章学习重点:参数宏的使用技巧一、引言在嵌入式系统和实时应用中,数据的传输和处理是至关重要的。字节队列(ByteQueu
发表于 11-15 01:08
•821次阅读
同样是结构体,看看在C语言和C++中有什么区别?
发表于 10-30 15:11
•275次阅读
电子发烧友网站提供《C7000优化C/C++编译器.pdf》资料免费下载
发表于 10-30 09:45
•0次下载
ostream 是 C++ 标准库中一个非常重要的类,它位于 头文件中(实际上,更常见的是通过包含 头文件来间接包含 ,因为 包含了 和 )。 ostream 类及其派生类(如 std::cout
发表于 09-20 15:11
•782次阅读
使用 ModusToolbox 3.2
我有一个用纯 C 语言编写的 XMC4700 项目。 我正在尝试添加一些 C++ 函数,并将其合并到我的原始代码中。
我可以构建独立的 .cpp
发表于 07-23 08:21
函数,可实际上C++中没有。但是别着急,其实C++中有两种简单的方法可以实现类似Java中的instanceof的功能。 在
发表于 07-18 10:16
•612次阅读
我使用的是 FX2 CY7C68013A 芯片。 我知道 CyUSB.NET 库中有我需要的 LoadEEPROM 函数。 请问如何在 C++ 环境而不是 C#/CLR 环境中使用该
发表于 05-31 06:59
用arm-xxx-gcc编译器进行编译,*.cpp文件会使用arm-xxx-g++编译器进行编译,STM32CubeMX生成文件都是*.c源文件,在不修改文件名后缀情况下,我现在是想在*.c源文件中使用c++特性(比如
发表于 04-25 06:15
使用DevEco Studio创建一个Native C++应用。应用采用Native C++模板,实现使用NAPI调用C标准库的功能。使用C标准库hypot接口计算两个给定数平方和的平
发表于 04-14 11:43
•2678次阅读
在前两篇博客中,我们 向您介绍了新的 MISRA C++ 标准 和 C++ 的历史 。在这篇博客中,我们将仔细研究以 C++
发表于 03-28 13:53
•822次阅读
操作系统、嵌入式系统等对性能要求较高的场景。C语言的语法相对简单,学习曲线较平缓,也是学习其他高级语言的入门语言。 C++: C++是在
发表于 02-05 14:11
•2456次阅读
的 MISRA C++:2023 博客系列的第二部分。
在这篇博客中,我们将深入探讨 C++ 的历史、编程语言多年来的发展历程以及它的下一步发展方向。
发表于 01-11 09:00
•622次阅读
评论