002左移運算符重載實現輸出自定義數據類型

//左移實現輸出自定義的數據類型
//	當無法修改左操作數的類時,使用全局函數進行重載
#include<iostream>
#include<string>
using namespace std;

class Person
{
	friend ostream& operator<<(ostream&out, Person&p);
public:

	Person(string name,int age)
	{
		this->name = name;
		this->age = age;
	}

	//成員函數的形式不能實現,我們不能在ostream類裏面添加一個函數他的形式爲 ostream&(Person&p)形式的函數
private:
	string name;
	int age;
};

//使用友元函數實現輸出自定義的Person類型
ostream& operator<<(ostream&out, Person&p)//函數返回值充當左值 需要返回一個引用
{
	out << "name:" << p.name << "age:" << p.age;
	return out;
}

void playObject()
{
	Person p1("baixiaolong", 23);
	cout << p1 <<"\t"<< "這是重載運算符後輸出的" << endl;
	//步驟:把左,右側操作數改爲函數參數,運算符號加上operator改爲函數的名字實現函數。

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章