解决:操作符重载, 二元运算符的参数之一必须是包含类型

it2022-05-05  130

本来想把重载的操作符,放在一个公共类或者命名空间中

当引用了指定命名空间时,就可以是用重载的运算符。

结果悲剧发生了!提示“二元运算符的参数之一必须是包含类型”

问题原因:没有把重载的实现,写在操作符左或右边的类型中

--------------  错误写法 -------------- 

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)  // 重载 + 操作符     {           // 你的实现          

    }

 

}

 

转载于:https://www.cnblogs.com/xxj-jing/archive/2011/12/08/2890091.html


最新回复(0)