| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 367 人关注过本帖
标题:关于重载的问题?
只看楼主 加入收藏
hehewei
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2009-12-24
结帖率:90%
收藏
已结贴  问题点数:20 回复次数:5 
关于重载的问题?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace P_ComplexNumber
{
    class Program
    {
        static void Main()
        {
            ComplexNumber c1 = new ComplexNumber(2, 6);
            ComplexNumber c2 = new ComplexNumber(3, -5);
            ComplexNumber c3 = c1 + c2;
            Console.WriteLine("c3 = {0}", c3);
        }
    }

    public class ComplexNumber
    {
        public double a = 0, b = 0;

        public ComplexNumber(double x1, double x2)
        {
            a = x1;
            b = x2;
        }

        public static ComplexNumber operator +(ComplexNumber c1, ComplexNumber c2)
        {
            return new ComplexNumber(c1.a + c2.b, c1.b + c2.b);
        }
}

如上源代码,我想实现对加法的重载,但是会出现:
图片附件: 游客没有浏览图片的权限,请 登录注册


请高手指点!!!
搜索更多相关主题的帖子: double public 
2011-03-22 16:06
qubo1982
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:367
专家分:1132
注 册:2009-3-18
收藏
得分:10 
return new ComplexNumber(c1.a + c2.b, c1.b + c2.b);
这里错了,你这样相当于返回了
 (new ComplexNumber(c1.a + c2.b, c1.b + c2.b)).ToString()
这里直接返回一个运算的结果就行了
return c1.a + c2.b + c1.b + c2.b;
2011-03-22 16:25
hehewei
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2009-12-24
收藏
得分:0 
回复 2楼 qubo1982
但是会发现如下问题:

错误    1    无法将类型“double”隐式转换为“P_  
2011-03-22 22:59
qubo1982
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:367
专家分:1132
注 册:2009-3-18
收藏
得分:8 
我明白你的意思了,重载一下ToString()就可以得到你想要的显示效果了
程序代码:
public class ComplexNumber
{
        public double a = 0, b = 0;

        public ComplexNumber(double x1, double x2)
        {
            a = x1;
            b = x2;
        }

        public static ComplexNumber operator +(ComplexNumber c1, ComplexNumber c2)
        {
            return new ComplexNumber(c1.a + c2.b, c1.b + c2.b);
        }

        public override string ToString()
        {
            return string.Format("{0},{1}", this.a, this.b);
        }
}
2011-03-23 08:03
zhp223
Rank: 5Rank: 5
等 级:职业侠客
帖 子:99
专家分:362
注 册:2010-3-21
收藏
得分:2 
楼上正解

日有所思,夜有所梦
2011-03-23 12:27
hehewei
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2009-12-24
收藏
得分:0 
回复 4楼 qubo1982
后面的有些不懂,还没学到……我还是多看看书吧!
2011-03-23 17:43
快速回复:关于重载的问题?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023593 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved