打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C++输入输出运算符重载(“>>”“<<”)

http://blog.163.com/hbu_lijian/blog/static/126129153201211553330531/

//输入输出运算符只能用友元函数重载
#include <iostream>
#include <assert.h>
#include <string.h>

using namespace std;

class Complex
{
    double re,im;
public:
    Complex(double r,double i):re(r),im(i)
    {

    }
    Complex()
    {
        re = 0;
        im = 0;
    }
    Complex operator!();
    Complex operator+(const Complex &obj);
    //重载输入输出运算符,只能用友元函数
    friend ostream &operator<<(ostream &os,const Complex &c);
    friend istream &operator>>(istream &is,Complex &c);
};

Complex Complex::operator +(const Complex &obj)
{
    Complex temp;
    temp.re = re + obj.re;
    temp.im = im + obj.im;
    return temp;
}

Complex Complex::operator !()
{
    Complex temp;
    temp.re = -re;
    temp.im = -im;
    return temp;
}

ostream & operator<<(ostream &os,const Complex &c)
{
    os << c.re;
    if(c.im > 0)
        os << "+" << c.im << "i" << endl;
    else
        os << c.im << "i" << endl;
    return os;
}

istream & operator>>(istream &is,Complex &c)
{
    is >> c.re >> c.im;
    return is;
}

int main(int argc,char *argv[])
{
    Complex obj1(1,2),obj2(3,4);
    Complex obj3 = obj1 + !obj2;
    cout << obj3;
    cin >> obj3;
    cout << obj3;
    return 0;
}

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
函数返回值是否使用引用类型的问题:理解引用、返回值
C++提高:String 类实现
C++_运算符重载
运算符重载
C 运算符重载探讨
c++基础--operator+定义在类内还是在类外
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服