本来想把重载的操作符,放在一个公共类或者命名空间中
当引用了指定命名空间时,就可以是用重载的运算符。
结果悲剧发生了!提示“二元运算符的参数之一必须是包含类型”
问题原因:没有把重载的实现,写在操作符左或右边的类型中
-------------- 错误写法 --------------
public class Comple
{
public int MyFun()
{
//你的实现
}
}
public class OperatorTest
{
// 这里的操作符重载会报错!!!
public int operator +(Comple v1, Comple v2)// 重载 + 操作符
{
//你的实现
}
}
--------------正确写法--------------
public class Comple
{
public int MyFun()
{
//你的实现
}
public int operator +(Comple v1, Comple v2)// 重载 + 操作符
{
//你的实现
}
}
本文详细解析了在C++中重载操作符时遇到的常见错误,即“二元运算符的参数之一必须是包含类型”的问题,并提供了正确的实现方式。通过将操作符重载实现写在操作符左右类型的定义中,可以避免此类错误,确保代码的正确性和高效性。
1948

被折叠的 条评论
为什么被折叠?



