#include <iostream>
using namespace std;
class Person {
friend ostream &operator<<(ostream &cout, Person &p);
public:
Person(int a, int b) {
m_a = a;
m_b = b;
}
private:
int m_a;
int m_b;
};
ostream &operator<<(ostream &cout, Person &p) {//cout全局只能有一个,所以应该在前面加上一个&
cout << "m_a=" << p.m_a << "\tm_b=" << p.m_b;
return cout;
}
void test01() {
Person p(10, 34);
cout << p << endl;//(cout << p)调用完后,返回的还是cout,所以可以继续往后执行
}
int main() {
test01();
getchar();
return 0;
}
注意事项:
①不能利用成员函数重载<<运算符,因为无法实现cout在左侧。所以只能利用全局函数重载左移运算符。
②重载左移运算符配合友元可以实现输出自定义数据类型,实现代码如上。