首页 > 代码库 > 函数重载,操作符重载(王桂林视频笔记)
函数重载,操作符重载(王桂林视频笔记)
匹配原则:
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"
操作符重载:
函数重载,操作符重载(王桂林视频笔记)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。