| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 544 人关注过本帖
标题:请教各位了
只看楼主 加入收藏
漫天花雨
Rank: 1
等 级:新手上路
帖 子:90
专家分:0
注 册:2008-7-13
结帖率:100%
收藏
 问题点数:0 回复次数:3 
请教各位了
小弟这里有段程序
#include<iostream.h>
class Complex
{
public:
    Complex()
    {
    real=0;
    imag=0;
    }
    Complex(double r,double i):real(r),imag(i){}
    Complex operator+(Complex &); //声明重载运算符的函数//
    void display();
private:
    double real;
    double imag;
};
Complex Complex::operator+(Complex &c2) //定义重载运算符的函数//
{
    Complex c;  //定义一个对象//
    c.real=real+c2.real;
    c.imag=imag+c2.imag;
    return c;
}
void Complex::display()
{
    cout<<"("<<real<<","<<imag<<"i)"<<endl;
}
void main()
{
    Complex c1(3,4),c2(5,-10),c3;
    c3=c1+c2;
    cout<<"c1= ";c1.display();
    cout<<"c2= ";c2.display();
    cout<<"c1+c2= ";c3.display();
}
有些问题不懂
1.c.real=real+c2.real; c.imag=imag+c2.imag;  这两段代码 里面的c.real real c2.real的顺序为什么不能改变呢,如果改变就不是我想要的结果了
2.cout<<"c1= ";c1.display();
    cout<<"c2= ";c2.display();
    cout<<"c1+c2= ";c3.display();  这三段代码里面的;是什么意思如果写成cout<<"c1+c2= "<<c3.display()<<endl;为什么不可以?

多谢各位了 小弟是新手 希望大家的解答尽量详细 多谢了
搜索更多相关主题的帖子: 声明 Complex private display 
2008-09-11 19:43
ailing
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2008-9-3
收藏
得分:0 
第一个比如说做c1+c2的时候,实际上是c1.operator+(c2)这样一个函数调用,c2.real就是对应参数c2的实部,real对应的就是c1的实部,把相加的结果放到c里,所以是c.real=real+c2.real,后面两个应该是可以换位的
第二个是因为display()里已经用了cout,所以应该写成cout<<"c1+c2= ";c3.display();
2008-09-11 20:27
漫天花雨
Rank: 1
等 级:新手上路
帖 子:90
专家分:0
注 册:2008-7-13
收藏
得分:0 
回复 2# ailing 的帖子
多谢回答
但是我改成这样为什么也不行呢?
Complex c1,c3;  //定义一个对象//
c3.real=c1.real+c2.real;     
c3.imag=c1.imag+c2.imag;
return c3;

还有啊您的第二个回答关于display的 小弟没看懂哦。。。。。。麻烦您能不能再详细解释一下。什么时候用“;”哦?为什么display()里面有cout,在主函数中的cout就要加";"???
2008-09-12 17:35
zhong0711101
Rank: 2
等 级:论坛游民
帖 子:156
专家分:25
注 册:2008-7-15
收藏
得分:0 
回复 3# 的帖子
c.real=real+c2.real;
c.imag=imag+c2.imag;
当中 real  imag表示当前对象的数据相当于
c.real=this.real+c2.real;
c.imag=this.imag+c2.imag;

display();是具体调用一个函数,返回void
2008-09-14 17:01
快速回复:请教各位了
数据加载中...
 
   



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

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