C++复数相乘,新手求解答。。

2024-11-23 21:10:30
推荐回答(3个)
回答1:

代码如下拆升:
#include
using namespace std;

class Complex
{
private:
float real;
float imag;
public:
Complex(float x=0,float y=0):real(x),imag(y){}
friend Complex operator*(const Complex& ca, const Complex& cb);
void show();
};
void Complex::show()
{
cout<< real;
if (imag >= 0)
{
cout<< "+";
}
cout<< imag << "i"<旅拆老}
Complex operator*(const Complex& ca, const Complex& cb)
{
return Complex(ca.real * cb.real - ca.imag * cb.imag,
ca.real * cb.imag - cb.real * ca.imag);
}
int main(void)
{
Complex c1(3, 5);
Complex c2(4, 6);
Complex c3 = c1 * c2;
c3.show();
return 0;
}
下面这句话有错误:
Complex(float x=0,float y=0):real(x),imag(x);{}
应该是imag(y),另外多了个分号。
这是构造函数的成员御如初始化表形式。

回答2:

这里{}表示函数体,里面没有任何可执胡咐物行语句,所以是空的。实际上这是一个构造函数,成员的初始化简羡在初始化列表中进行
real(x),imag(x){}.源码的{}前面多了一个分号是语法错裤液误的,所以可能你误解了。

回答3:

什么也不写就好了,只不过是一种俏皮的构造方式罢了