#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" #includeusing 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" #includeusing 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; }
运行结果:



