一、类中的函数重载:
1、函数重载的温习:
函数重载的本质为相互独立的不同函数
C++中通过函数名和函数参数确定函数调用
无法直接通过函数名得到函数重载函数的入口地址
函数重载必然发生在同一个作用域中
2、类中的成员函数可以进行重载:
构造函数的重载
普通成员函数的重载
静态成员函数的重载
这里有一个问题:全局函数,普通成员函数以及静态成员函数之间是否可以构成重载?
从上面回顾重载函数的知识中,我们要注意到一点函数重载必须发生在同一作用域里面(其他两点问题不大),所以的构造函数和普通成员函数是可以构造重载的,而与全局函数是不可以构成重载的。
代码测试:
输出结果:
3、重载的意义:
通过函数名对函数功能进行提提示
通过参数列表对函数用法进行提示
扩展系统中已经存在的函数功能
这里用c语言里面的拷贝字符串函数strcpy来进行扩展演示:
代码版本一:
输出结果:
这里虽然结果是输出多了,但是这个程序同时也报了段错误,因为buf所能存储的能力小于s;所以为了解决这个问题,你肯定第一时间想到strncpy函数:
代码版本二:
输出结果:
这个函数就保护程序的安全性;但是我在c++里面既然学习了函数重载,那么久可以在原有的函数基础上进行扩展:
代码版本三:
输出结果:
二、总结:
类的成员函数之间可以进行重载;
重载必须发生在同一个作用域中;
全局函数和成员函数不能构成重载关系;
重载的意义在于扩展已经存在的功能。
-
函数
+关注
关注
3文章
4359浏览量
63492 -
C++
+关注
关注
22文章
2116浏览量
74372
发布评论请先 登录
相关推荐
同样是函数,在C和C++中有什么区别
C++新手容易犯的十个编程错误
探索字节队列的魔法:多类型支持、函数重载与线程安全

ostream在c++中的用法
ModusToolbox 3.2在c代码中包含c++代码的正确步骤是什么?
Perforce静态代码分析专家解读MISRA C++:2023®新标准:如何安全、高效地使用基于范围的for循环,防范未定义行
FX2 CY7C68013A如何在C++环境中使用LoadEEPROM函数?
STM32CubeMX如何在*.c源文件中使用c++特性?
鸿蒙OS开发实例:【Native C++】

评论