#pragma once
//利用成员运算符重载实现两个复数的加法
class Complex
{
public:
Complex();
Complex(double a, double b);
Complex operator +(Complex &rc); //重载运算符
void Display();
~Complex();
private:
double m_real; //实部
double m_imag; //虚部
};
#include "stdafx.h"
#include "Complex.h"
#include <iostream>
using namespace std;
Complex::Complex()
{
m_real = 0;
m_imag = 0;
}
Complex::Complex(double a, double b)
{
m_real = a;
m_imag = b;
}
Complex Complex::operator +(Complex &rc) //重载运算符
{
Complex c;
c.m_real = m_real + rc.m_real; //rc为右操作数
c.m_imag = m_imag + rc.m_imag;
return c;
}
void Complex::Display()
{
cout << "(" << m_real << "," << m_imag << "i)" << endl;
}
Complex::~Complex()
{
}
// ComplexExample.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "Complex.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
Complex c1(1, 2), c2(3, 4), c3;
c3 = c1 + c2; //等价于c3 = c1.operator +(c2)
cout << "c1 ="; c1.Display() ;
cout << "c2 ="; c2.Display();
cout << "c3 ="; c3.Display();
getchar();
return 0;
}
运行结果: