左移运算符重载——C++

场景:如果一个类person中有2个属性,想要同时输出是不可能的,必须要一个一个的指定,然后输出。如下

person p;

cout<

但是直接用cout<

代码实现:

#include
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 << "m_a:" << p.m_a << " m_b:" << p.m_b << endl;
	return cout; //(实现链式编程)
}

void test()
{
	person p(10,10);
	cout << p << endl;
}

int main()
{
	test();
	system("pause");
	return 0;
}

运行结果如下:

你可能感兴趣的:(C++)