一、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
时间: 2024-11-02 18:47:04