#include<iostream>using namespace std;class Person{friend ostream &operator<<(ostream &cout,Person p);public:Person(int m_a,int m_b);private:int a;int b;//利用成员函数进行重载 左移运算符 p.operator<<(cout) 简化版本 p<<cout// void operator<<(cout)//一般情况下不用成员函数进行重载 因为无法满足cout在左边// {//// }};//只能利用全局函数重载左移运算符。ostream &operator<<(ostream &cout,Person p)//ostream是cout的数据类型(输出流类型){cout<<p.a<<endl;cout<<p.b;return cout;//实现链式编程思想 若没有此cout 则下面的函数只能cout一次。}Person::Person(int m_a,int m_b){a=m_a;b=m_b;}void show(){Person p(10,10);cout<<p;}int main(){show();return 0;}
总结:重载左移运算符配合友元可以实现输出自定义数据类型。
