//左移實現輸出自定義的數據類型
// 當無法修改左操作數的類時,使用全局函數進行重載
#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;
}