c++中,对运算符+进行重载,然后有两个类对象a,b。请问在进行a+b时候,它是怎么判断a和b对应
c++中,对运算符+进行重载,然后有两个类对象a,b。请问在进行a+b时候,它是怎么判断a和b对应于函数operator+的参数???...
c++中,对运算符+进行重载,然后有两个类对象a,b。请问在进行a+b时候,它是怎么判断a和b对应于函数operator+的参数???
展开
3个回答
展开全部
假设 a 的类型为 A,b 的类型为 B
编译器首先通过 name lookup 找到所有在作用域内的 operator+ 函数,再加上假设内置运算符也是函数而生成的函数签名,构成 overload set
然后,编译器执行 overload resolution,在 overload set 中找到最适合第一个实参类型为 A 第二个实参类型为 B 的函数(best viable function)
找到最适合的函数之后还没完,编译器还要进行 access check,检查函数是否能够被调用
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询