目录
作用:
可以输出自定义数据类型,即可以cout<<p;执行子函数,无论对象内容是什么数据类型都能输出。
用法:
operator<<
例:
#include<iostream>
using namespace std;
class person
{
public:
int m_A;
int m_B;
};
ostream& operator<<(ostream& cout, person& p)
{
cout << p.m_A << " " << p.m_B;
return cout;
}
int main()
{
person p;
p.m_A = 10;
p.m_B = 10;
cout << p << "haha" << endl;
system("pause");
return 0;
}
第11行的ostream是输出流,用于重载<<。
ostream& cout,person& p的本质为operator<<(cout,p)。并且要返回cout。就算&后面写成其他的名称也一样是调用这两个,因为这里是引用,不影响使用。
这个对象也受访问权限限制,若int m_A和int m_B是private,就要用友元,并在类的最上面一行赋值一遍函数声明,即:friend ostream& operator<<ostream& cout,person& p);。并且要在类中写一个构造函数,否则也会报错,在主函数中写person p(10,10);并删除p.m_A=10和p.m_B=10。