侵权投诉
订阅
纠错
加入自媒体

C++之类中的函数重载学习总结

2020-08-12 09:09
TXP嵌入式
关注

一、类中的函数重载:

1、函数重载的温习:

函数重载的本质为相互独立的不同函数

C++中通过函数名和函数参数确定函数调用

无法直接通过函数名得到函数重载函数的入口地址

函数重载必然发生在同一个作用域中

2、类中的成员函数可以进行重载:

构造函数的重载

普通成员函数的重载

静态成员函数的重载

这里有一个问题:全局函数,普通成员函数以及静态成员函数之间是否可以构成重载?

从上面回顾重载函数的知识中,我们要注意到一点函数重载必须发生在同一作用域里面(其他两点问题不大),所以的构造函数和普通成员函数是可以构造重载的,而与全局函数是不可以构成重载的。

代码测试:

image.png

image.png

输出结果:

image.png

3、重载的意义:

通过函数名对函数功能进行提提示

通过参数列表对函数用法进行提示

扩展系统中已经存在的函数功能

这里用c语言里面的拷贝字符串函数strcpy来进行扩展演示:

代码版本一:

image.png

输出结果:

image.png

这里虽然结果是输出多了,但是这个程序同时也报了段错误,因为buf所能存储的能力小于s;所以为了解决这个问题,你肯定第一时间想到strncpy函数:

代码版本二:

image.png

输出结果:

image.png

这个函数就保护程序的安全性;但是我在c++里面既然学习了函数重载,那么久可以在原有的函数基础上进行扩展:

代码版本三:

image.png

输出结果:

image.png

二、总结:

类的成员函数之间可以进行重载;

重载必须发生在同一个作用域中;

全局函数和成员函数不能构成重载关系;

重载的意义在于扩展已经存在的功能。

声明: 本文由入驻维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

发表评论

0条评论,0人参与

请输入评论内容...

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

电子工程 猎头职位 更多
扫码关注公众号
OFweek电子工程网
获取更多精彩内容
文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码:

粤公网安备 44030502002758号