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

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

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

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

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

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

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

    }

 

}

 

posted @ 2011-12-08 19:50  草青工作室  阅读(680)  评论(0编辑  收藏  举报