C/C++教程

c++ 加减运算符重载

本文主要是介绍c++ 加减运算符重载,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Problem Description
设有复数c=12.5+4.8i,双精度浮点数f=3.2,编写复数类(Complex),计算f+c、c+f和f-c的值。
完善以下程序。
//你的代码写在这里
int main()
{
Complex c(12.5, 4.8);
Complex t;
t = 3.2 + c;
t.Display();

t = c + 3.2;
t.Display();

t = 3.2 - c;
t.Display();
return 0;
}

Input Description

Sample Output
15.7+4.8i
15.7+4.8i
-9.3-4.8i

#include <iostream>
using namespace std;

class Complex
{
public:
	double a;
	double b;
	//构造函数
	Complex(double c_a, double c_b)
	{
		a = c_a;
		b = c_b;
	}
	void Display()
	{
		cout << a;
		if (b > 0)
			cout << "+";
		if (b != 0)    //i<0时,直接输出负数i i!=0时,啥都不输出
			cout << b << "i";
		cout << endl;
	}
	Complex(){}
};

//全局函数作运算符重载
	Complex operator+(double num,Complex &p)
	{
		Complex t;
		t.a = num + p.a;
		t.b = p.b;
		return t;
	}   
	Complex operator+(Complex& p, double num)
	{
		Complex t;
		t.a =p.a + num;
		t.b = p.b;
		return t;
	}
	Complex operator-(double num, Complex& p)
	{
		Complex t;
		t.a = num - p.a;
		t.b =0 - p.b;
		return t;
	}

int main()
{
	Complex c(12.5, 4.8);
	Complex t;
	t = 3.2 + c;
	t.Display();

	t = c + 3.2;
	t.Display();

	t = 3.2 - c;
	t.Display();
	return 0;
}


#include<iostream>
using namespace std;
class Complex
{
    double r, i;
public:
    Complex(double a = 0.0, double b = 0.0)
    {
        r = a; i = b;
    }
friend Complex operator-(Complex a, Complex b)
    {
        Complex t;
        t.r = a.r - b.r;
        t.i = a.i - b.i;
        return t;
    }
friend Complex operator+(Complex a, Complex b)
    {
        Complex t;
        t.r = a.r + b.r;
        t.i = a.i + b.i;
        return t;
    }
    void Display()
    {
        cout << r;
        if (i > 0)
            cout << "+";
        if (i != 0)
            cout << i << "i";
        cout << endl;
    }
};
这篇关于c++ 加减运算符重载的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!