自考新教材--p152

依然范特西╮ 提交于 2020-02-29 18:29:18

源程序:

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

#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;

}

运行结果:

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!