作用:可以输出自定义数据类型
*/
//目标 调用p1,输出Person 中的属性 m_A ,m_B :
/*
#### 4.5.2 左移运算符重载 “<<” 左移运算符
作用:可以输出自定义数据类型
*///目标 调用p1,输出Person 中的属性 m_A ,m_B : class Person
{friend ostream& operator<<(ostream& out, Person& p);
public:Person(int a , int b) {this->m_A = a;this->m_B = b;};private:int m_A; int m_B;
};//全局函数实现左移重载
//ostream对象只能有一个ostream& operator<<(ostream& out, Person& p) {out << "a : " << p.m_A << "b: " << p.m_B;return out;//本质内部无限可以往后追加
}void test() {Person p1(10, 20);cout << p1 << " hello world " << endl; //链式编程}int main() {test();system("pause");return 0;
}//总结:重载左移运算符配合友元可以实现输出自定义数据类型