1. 程式人生 > >過載操作符(cin cout 都在這篇文章裡出現了 注意區別)

過載操作符(cin cout 都在這篇文章裡出現了 注意區別)

// A code block
#include “iostream”
using namespace std;
class Date
{
private:
int year,month,day;
public:
Date(int a=0,int b=0,int c=0)
{
this->year=a;
this->month=b;
this->day=c;
}
void Show()
{
cout<<year<<"-"<<month<<"-"<<day<<endl;
}
friend ostream &operator <<(ostream& cout,Date &d)
{//過載插入符 使得可以直接cout<<自定義的累這種形式的操作可以實現
cout << d.year << “-” << d.month << “-” << d.day;
//這裡可以加上返回 return cout;不過我沒加好像也可以執行
}//ostream &operator<<即為過載操作符做法 在括號中包括的(ostream&cout,Date即把輸出和Date類練聯絡在一起了)
friend istream &operator >>(istream& cin,Date &d)//這裡一定要引用符號 否則值傳到不過去 有的也會在類前加const 不過我不加也執行出來了
{
cin>>d.year>>d.month>>d.day;
//這裡可以加上返回 return cin;不過我沒加好像也可以執行
}
} ;

int main()
{
Date d1;
cin>>d1;
cout<<d1<<endl;//直接輸出物件d1
d1.Show();//注意與前一句等價
return 0;
}