函数重载,操作符重载(王桂林视频笔记)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数重载,操作符重载(王桂林视频笔记)相关的知识,希望对你有一定的参考价值。
匹配原则:
1 严格匹配找到则调用
2 通过隐式转换寻找一个匹配,找到则调用
3 上述两项找不到就会报错
?(隐式)自动转换类型中 double可以转成 float 但是float转换成double会出错,8字节到4字节,损失精度
? c++允许 int 到 long 和 double 隐式类型转换,遇到这种情况会引起二义性,解决办法可以是使用强制类型转换
? 鉴于上述, 设计的时候尽量避开隐式类型转换
底层实现:命名倾轧 name mangling
mystrlen函数的功能是计算字符串的长度,并作为函数值返回
详细:
strlen函数的功能,从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符‘\\0‘为止,返回字符串的实际长度。注意不包括 ‘\\0‘ 字符
extern 用来扩展作用域,是原来仅限于本文件的作用域扩展到其他文件中,可被重载,变成其他意思:说明某个语句是c语言的语句而非c++的,c语言没有倾轧的概念而c++有,所以用extern可以消除倾轧,若原来重载的文件都同时消除倾轧也是可以运行的
重点:c++要完全兼容c语言,而有些c语言库里的文件是没有被倾轧的,但使用c++在调用时,编译器会自动倾轧,调用就链接不上了,为保证其在c++中不被倾轧,可以在调用前加一个 extern “c"
操作符重载:
以上是关于函数重载,操作符重载(王桂林视频笔记)的主要内容,如果未能解决你的问题,请参考以下文章