【day4】类和对象

该代码示例展示了如何在C++中创建一个名为Complex的复数类,包括构造函数、显示方法以及对加法、乘法、小于和大于运算符的重载。同时,还定义了全局函数来重载减法运算符和比较运算符,以及输入输出流的重载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

#include <iostream>
using namespace std;

class Complex
{
    int real;
    int vir;
public:
    Complex(){}
    Complex(int a,int b):real(a),vir(b){}
    void show()
    {
        cout << real << "+" << vir << "i" << endl;
    }
    //成员函数版的运算符重载
    Complex operator+(Complex &a)
    {
        //temp用于存储运算的临时结构
        Complex temp;
        temp.real = this->real+a.real;
        temp.vir = this->vir+a.vir;
        //运算结束把结果返回
        return temp;
    }
    //成员函数版重载*运算符
    //a*b
    Complex operator*(const Complex &a)
    {
        Complex temp;
        temp.real=this->real*a.real;
        temp.vir=this->vir*a.vir;
        return temp;
    }
    //成员函数版<运算符重载
    //a3<a2
    bool operator<(Complex &a2)
    {
        if(this->real==a2.real)
        {
            return this->vir<a2.vir;
        }
        else {
            return this->real<a2.real;
        }
    }

    //给重载-运算符的全局函数添加友元的声明
    friend Complex operator-(Complex &c1,Complex &c2);
    friend bool operator>(Complex &a1,Complex &a2);
    friend ostream &operator<<(ostream &out,Complex &c1);
    friend istream &operator>>(istream &in,Complex &c1);

};
//使用全局函数重载-运算符
Complex operator-(Complex &c1,Complex &c2)
{
    Complex temp;
    temp.real = c1.real-c2.real;
    temp.vir = c1.vir-c2.vir;
    return temp;
}
//全局函数实现>运算符的重载
bool operator>(Complex &a1,Complex &a2)
{
    //如果两个类对象的实部相等,判断虚部
    if(a1.real==a2.real)
    {
        return a1.vir>a2.vir;
    }else {
        return a1.real>a2.real;
    }
}
//重载输出<<
ostream &operator<<(ostream &out,Complex &c1)
{
    out<<c1.real<<'\t'<<c1.vir<<endl;
    return out;
}
//重载输入>>
istream &operator>>(istream &in,Complex &c1)
{
    in>>c1.real;
    in>>c1.vir;
    return in;
}

int main()
{
    Complex c1;
    Complex c2;
    cin>>c1;
    cin>>c2;
    cout<<c1<<c2;

    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值