一、cin重载

  1.cin为ostream类的成员

  2.cin重载应为全局函数(毕竟ostream是别人写好的)

  3.代码

  a.核心代码

ostream & operator<<(ostream &os,const A &a)//const A &a是为了避免复制函数的调用 ;ostream &o 相当于 cout
{o<<a.x<<" "<<a.y;    return os;
}//返回值设为ostream &是为了连续使用 << 

b.完整试例

#include<iostream>
using namespace std;
class A
{int x;int y;public:A(int a=0,int b=0):x(a),y(b) {}friend ostream & operator<<(ostream & o,const A & a);//友元
};
ostream & operator<<(ostream &o,const A &a)//const A &a是为了避免复制函数的调用 ;ostream &o 相当于 cout
{o<<a.x<<" "<<a.y;
}//返回值设为ostream &是为了连续使用 <<
int main()
{A a(1,2);cout<<a<<endl;
}

二、cout重载

   1.核心代码

istream & operator>>(istream &is,A &a)
{is>>a.x>>a.y;return is;
}

   2.完整试例

#include<iostream>
using namespace std;
class A
{int x;int y;public:A(int a=0,int b=0):x(a),y(b) {}friend istream & operator>>(istream & is,A & a);friend ostream & operator<<(ostream & os,const A & a);//设置友元 是为了访问私有成员x,y
};
ostream & operator<<(ostream &os,const A &a)
{os<<a.x<<" "<<a.y; return os;
}
istream & operator>>(istream &is,A &a)
{is>>a.x>>a.y;return is;
}
int main()
{A a;cin>>a;cout<<a<<endl;return 0;
}

转载于:https://www.cnblogs.com/shenyuling/p/10017485.html

cin、cout的重载相关推荐

  1. C++输入输出:cin/cout 还是 scanf/printf?

    相信使用C++的人都有一种迷惑或者是不自信:在输入输出的时候是不是应该使用scanf/printf更好呢,因为传说cin/cout龟速,我当时也长期被这个所困扰,后来在阅读C++ primer第五版的 ...

  2. C++基础::cin/cout

    cin/cout 的本质是流,cin 是输入流(istream),cout 是输出流(ostream). 进制: 默认十进制输出:cout << dec << 100 < ...

  3. C++中的cin cout

    #include using namespace std; //c++的输入输出流头文件 1.cin ①cin>>a; 直接输入变量. ②同时输入多个变量也是一样的写法. cin a> ...

  4. C++流式输入输出加速 给 cin/cout 装个小火箭

    C++流式输法加速 文章目录 C++流式输法加速 1. sync_with_stdio 和 endl 1.1 cin/cout 1.2 endl 2. cin.tie(0) External 相信很多 ...

  5. ACM C++ cin cout 加速IO

    #include <iostream> int main() {std::ios::sync_with_stdio(false);//这句话放在main里面的开始位置,就可以加速cin c ...

  6. C++入门之cin cout

    C++入门之cout语句 1.认识cin和cout c++中常用的输入输出语句有 "scanf" "printf" 和 "cin" &quo ...

  7. c语言cin cout,C++学习之:cout和cin用法总结

    cout cout 用于在屏幕上显示消息,应该是 console output 的简写.它是 C++ 中 ostream 对象,该类被封装在 库中,该库定义的名称都放在命名空间 std 中,所以 co ...

  8. C++ 笔记(02)— 程序结构(头文件说明、命名空间、函数返回值、函数参数、注释、语句结束符、cin/cout)

    先看以下代码 #include <iostream> #include <string> using namespace std;int main() // main() 是程 ...

  9. cin cout加快

    在ACM比赛过程中,一些大牛(佬)常常会使用一些奇淫技巧来优化自己的代码.甚至就连最简单的输入输出 都有一些常人意想不到的小技巧. 那么明明在C语言中有scanf().printf(),C++中有ci ...

最新文章

  1. 用远线程实现文件自删除
  2. 在 Ubuntu 上安装 Android Studio
  3. 我的第一个python web开发框架(32)——定制ORM(八)
  4. linux运维趋势 37期刊为啥没有,linux运维常见问题
  5. arm cpu 超频_树莓派 400 超频方法介绍
  6. Gartner:企业机构需重新定义网络安全领导者角色
  7. java.net.BindException: Address already in use: connect
  8. GWT HTML editor
  9. 有道词典在谷歌Chrome浏览器中无法取词的解决方法
  10. 正确安装adb工具,且常用的adb命令
  11. 25款实用的桌面版博客编辑器
  12. 红米note5解锁教程_红米note手机密码忘了怎么解锁
  13. WebAI.js:一个简单的网页前端 AI 模型部署工具
  14. 微软官方硬盘备份软件SyncToy
  15. element-ui 点击Switch开关弹出对话框确认后再改变switch开关状态
  16. 农产品商铺商城小程序(JavaSSM+微信小程序)
  17. 计算机如何接两个屏幕,如何为一台电脑设置两个显示器
  18. This is an MDK version 4 project ,require Device support for Cortex-M based devices.
  19. 【错误汇总】PYTHON开发
  20. 小米屏和展讯屏幕调试参考 写的较好(有发送速率)

热门文章

  1. ZeroMQ实例-使用ZeroMQ进行windows与linux之间的通信
  2. Altium Desgner软件,PCB设计中铺铜的作用
  3. MySql 查询表字段数
  4. 组合与继承之重写方法和字段
  5. ORA-01109:数据库未打开(解决)
  6. 说说大型高并发高负载网站的系统架构【转】
  7. 前途到底是网络工程还是程序设计
  8. Spring Cloud Alibaba 基础教程:Nacos 生产级版本 0.8.0
  9. CentOS 6.9下配置安装KVM
  10. 《Cacti实战》——第1章 认识Cacti