C++之输入输出运算符重载

cpp 复制代码
friend ostream& operato<<(ostream& os,const RIGHT& right){...}
ostream, 标准库的类
cout << a; //operator<<(cout,a)
cpp 复制代码
friend istream& operato>>(istream& is,RIGHT& right){...}
istream cin;//istream是标准库的类
cin >> a;//operator>>(cin,a)
  • 因为无法向标准库类添加成员函数,所以只能使用全局函数的形式
cpp 复制代码
#include <iostream>
using namespace std;
class Complex{
private:
    double r;
    double i;
public:
    Complex(double r, double i){
        this->r = r;
        this->i = i;
    }
    const Complex operator+(const Complex& c){
        Complex tmp(r+c.r, i+c.i);
        return tmp;
    }
    Complex & operator+=(const Complex &c){
        r = r + c.r;
        i = i + c.i;
        return *this;
    }
    friend ostream& operator<<(ostream &os, const Complex& c){
        os << c.r << " + " << c.i << "i" << endl;
        return os; // cout << a << b << c << endl;
    }
    friend istream& operator>>(istream &is, Complex& c){
        is >> c.r >> c.i ;
        return is;
    }
    friend const Complex operator-(const Complex& l , const Complex& r);
    friend Complex & operator-=(Complex &L, const Complex &R);
};
const Complex operator-(const Complex& l, const Complex& r){
        Complex tmp(l.r - r.r, l.i - r.i);
        return tmp;
}
    Complex & operator-=(Complex &L, const Complex &R){
        L.r -= R.r;
        L.i -= R.i;
        return L;
    }
int main(void){
    Complex c1(2,3);
    cout << c1;
    Complex c2(0,0);
    cin >> c2;
    cout << c2;
    return 0;
}
相关推荐
Rabitebla37 分钟前
C++ 和 C 语言实现 Stack 对比
c语言·数据结构·c++·算法·排序算法
旖-旎38 分钟前
递归(汉诺塔问题)(1)
c++·学习·算法·leetcode·深度优先·递归
深邃-39 分钟前
【数据结构与算法】-顺序表链表经典算法
java·c语言·数据结构·c++·算法·链表·html5
努力学习的小廉40 分钟前
我爱学算法之—— 前缀和(上)
c++·算法
文祐40 分钟前
C++类之虚函数表和虚基类表及其内存布局(一个子类虚继承一个父类)
开发语言·c++
是娇娇公主~1 小时前
C++11 移动语义全面详解
c++·移动语义
努力努力再努力wz1 小时前
【MySQL入门系列】掌握表数据的 CRUD:DML 核心语法与执行逻辑解析
android·开发语言·数据结构·数据库·c++·b树·mysql
漂流瓶jz1 小时前
UVA-120 煎饼 题解答案代码 算法竞赛入门经典第二版
数据结构·c++·算法·排序·aoapc·算法竞赛入门经典·uva
xiaoye-duck1 小时前
【C++:异常】C++ 异常讲解指南:从理论到实践,深入理解栈展开和优雅处理程序错误
开发语言·c++·异常