代码如下拆升:
#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),另外多了个分号。
这是构造函数的成员御如初始化表形式。
这里{}表示函数体,里面没有任何可执胡咐物行语句,所以是空的。实际上这是一个构造函数,成员的初始化简羡在初始化列表中进行
real(x),imag(x){}.源码的{}前面多了一个分号是语法错裤液误的,所以可能你误解了。
什么也不写就好了,只不过是一种俏皮的构造方式罢了