自考新教材--p152

源程序:

//"+"、"-"运算符重载

#include <iostream>

using namespace std;

class myComplex

{

private:

  double real, imag;

public:

  myComplex();

  myComplex(double x, double i);

  void outCom();

  myComplex operator-(const myComplex &c);

  friend myComplex operator+(const myComplex &c1, const myComplex &c2);//声明友元函数

};

myComplex::myComplex()

{

  real = 0;

  imag = 0;

}

myComplex::myComplex(double r, double i)

{

  real = r;

  imag = i;

}

void myComplex::outCom()

{

  cout << "(" << real << "," << imag << ")";

}

myComplex myComplex::operator-(const myComplex &c)

{

  return myComplex(this->real - c.real, this->imag - c.imag);

}

myComplex operator+(const myComplex &c1, const myComplex &c2)//友元函数可以直接在类外定义

{

  return myComplex(c1.real + c2.real, c1.imag + c2.imag);

}

int main()

{

  myComplex c1(1,2), c2(3,4),res;

  c1.outCom();

  cout << "operator+";

  c2.outCom();

  cout << "=";

  res = c1 + c2;

  res.outCom();

  cout << endl;

  c1.outCom();

  cout << "operator-";

  c2.outCom();

  cout << "=";

  res = c1 - c2;

  res.outCom();

  cout << endl;

  system("pause");

  return 1;

}

运行结果:

猜你喜欢

转载自www.cnblogs.com/duanqibo/p/12059875.html