c++类流操作运算符的重定义

对于流操作运算符我们需要注意的是函数的返回类型应该是流输入类型的引用或者流输出类型的引用,因为如果代码是

cout<<a<<b;

我们对a执行完cout函数之后,我们应该再次将cout返回给b,使b也能正确的被调用。

#include <iostream>
using namespace std;
class CFraction
{
    public:
    CFraction()
    {
        nume = 0;
        deno = 1;
    }
      friend ostream &operator<<(ostream &, CFraction c);
      friend istream &operator>>(istream &, CFraction &c);
    private: 
      int nume;
      int deno;
};
 
ostream & operator<<(ostream &output,CFraction c)
{
    output << c.nume << "/" << c.deno << endl;
    return output;
}
 
istream & operator>>(istream &input,CFraction &c)
{
    input >> c.nume >> c.deno;
    return input;
}
 
int main()
{
    CFraction c;
    cin >> c;
    cout << c;
    system("pause");
    return 0;
}

 

posted @   xyee  阅读(1270)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示
主题色彩