C++程序题一道,求解答。

#include<iostream>
#include<fstream>
using namespace std;
class complex
{
public:
int real;
int imag;
complex(int r=0,int i=0)
{
real=r;
imag=i;
}
};
complex operator+( complex&a,complex& b)
{
int r=a.real+b.real;
int i=a.imag+b.imag;
return complex(r,i);
}
void main( )
{
complex x(1,2),y(3,4),z;
z=x+y;
cout<<z.real<<″+″<<z.imag<<″i″<<endl;
}
最后的运行结果是什么,求解答!
为什么运行不出来?里面有什么错误?

第1个回答  2014-07-07
#include<iostream>
#include<fstream>
using namespace std;
    class complex1
    {
        public:
        int real;
        int imag;
        complex1(int r=0,int i=0)
        {
            real=r;
            imag=i;
        }
    };
complex1 operator+( complex1& a,complex1& b)//运算符重载
{
    int r=a.real+b.real; //为Int成员直接相加
    int i=a.imag+b.imag;
    return complex1(r,i); //返回值为一个complex1对象
}
int main()// complex为C++关键字 ...
{
    complex1 x(1,2),y(3,4),z;
    z=x+y;
    cout<<z.real<<"+"<<z.imag<<"i"<<endl;  //输出4+6i
    return 0;
}

追问

complex(int r=0,int i=0)
{
real=r;
imag=i;
}
};
这个函数有什么作用呢?

追答

这个是构造器,在complex x(1,2)的时候,把real赋值为1,imag赋值为2。

第2个回答  2014-07-07

复数加法

输出 

4+6i

追问

complex(int r=0,int i=0)
{
real=r;
imag=i;
}
};
这个函数的作用是什么。

追答

构造函数,
用r和l作为参数,构造一个complex类型的对象(其中这个对象里面的real保存r,imag保存1,是一个表示real + imag (i) 的复数的对象)

本回答被提问者采纳
第3个回答  2014-07-07
哈哈,你用了汉字的全角的:和;不是英文模式下的:和;你还没看现。你用什么编辑器啊!

哈哈,你还用了全角模式的,与“追问

ok,改过来之后就行了。

追答

哈哈,没什么。我也犯过的错误。

相似回答