| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 783 人关注过本帖
标题:求高手帮忙! c++ 问题?
只看楼主 加入收藏
DreamSkyCC
Rank: 2
来 自:河北赵县
等 级:论坛游民
帖 子:40
专家分:58
注 册:2010-11-28
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:5 
求高手帮忙! c++ 问题?
#include <iostream>
using namespace std;
class Complex
{
    private:
   
        float Real,Image;
    public:
      
        Complex(float r = 0,float i = 0)
        {
            Real = r;
            Image = i;
      
        }
   
        void Show(int i)
        {
            cout<<"c"<< i << "=" << Real << "+" << Image << "i" << endl;
           
        }
        Complex operator+ (Complex &c);
      
        Complex operator- (Complex &c);
      
        void operator= (Complex &c);           

   
};

void Complex::operator= (Complex &c)
{
   
   

    Real = c.Real;
    Image = c.Image;
    return ;   

}
Complex Complex::operator+ (Complex &c)
{
   
    Complex t;
    t.Real = Real + c.Real;
    t.Image = Image + c.Image;
    return t;
}
Complex Complex::operator- (Complex &c)
{
   
    Complex t;
    t.Real = Real - c.Real;
    t.Image = Image - c.Image;
    return t;
}

int main(void)
{
    Complex c1(20,20),c2(30,50),c3;
    c1.Show(1);
    c2.Show(2);
    c3 = c1 + c2;
    c3.Show(3);
      

    return 0;
}

80: error: no match for ‘operator=’ in ‘c3 = (((Complex&)(& c2)))’
chongzai.cpp:36: note: candidates are: void Complex::operator=(Complex&)

搜索更多相关主题的帖子: void class Complex private include 
2010-12-06 22:25
tianboyu2010
Rank: 2
来 自:重庆涪陵
等 级:论坛游民
帖 子:15
专家分:20
注 册:2010-11-8
收藏
得分:2 
运行结果为c1=20+20i
          c2=30+50i
          c3=50+70i
是不是这个?
2010-12-06 22:54
DreamSkyCC
Rank: 2
来 自:河北赵县
等 级:论坛游民
帖 子:40
专家分:58
注 册:2010-11-28
收藏
得分:0 
我想要这样的结果,但是不是这样的结果!有语法错误!

努力总会有收获!
2010-12-07 09:05
venus85
Rank: 6Rank: 6
等 级:侠之大者
帖 子:159
专家分:477
注 册:2010-11-27
收藏
得分:2 
发错坛子了,去C++发会更好
2010-12-07 09:22
tianboyu2010
Rank: 2
来 自:重庆涪陵
等 级:论坛游民
帖 子:15
专家分:20
注 册:2010-11-8
收藏
得分:0 
回复 3楼 DreamSkyCC
你这个语句没有问题的,估计你用的是VC6.0来编译的吧...在VS2008下没有任何问题.
2010-12-07 13:06
fy7518716
Rank: 2
等 级:论坛游民
帖 子:8
专家分:24
注 册:2008-6-17
收藏
得分:2 
=运算符c++中有默认的,如果要实现深拷贝,就是要重载这个函数。重载嘛,你的函数形式就要和以前的一致。
把函数形式改成  Complex &operator= (Complex &c) 试试。应该能成功的。
这样的形式是有一定的道理的,如果这样重载来=运算符后,就可以在程序中这样使用
a = b = c = d; //a, b, c, d都是Complex的对象
2010-12-08 15:56
快速回复:求高手帮忙! c++ 问题?
数据加载中...
 
   



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

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