例如 程序 表示为 A = B * 2.75可以等于A = B.operator*(2.75)
但是 A = 2.75 * B 就不能写成这样 因为 operator *是成员函数 只有类的对象才能引用
A = B * 2.75这样的写法只有非成员函数才能这么写因为:
A = operaotor(2.75 ,B)
但是由于大部分非成员函数 都不能访问类的数据部分 所以 引入 友元
friend time operator *();
必须使用 友元 因为如果是成员函数 time<<cout形式的
如果是 友元函数就可以使用 cout<<time
cout 是ostream对象
void operator <<(ostream &os,const time & t)
{
}
这个函数不能连接
cout<<trip<<"Tuesday"
cout<<x<<y;
ostream &operator<<(ostream &os,const time &t);
ostream:输出至屏幕上 ofstream:输出至文件
但是 A = 2.75 * B 就不能写成这样 因为 operator *是成员函数 只有类的对象才能引用
A = B * 2.75这样的写法只有非成员函数才能这么写因为:
A = operaotor(2.75 ,B)
但是由于大部分非成员函数 都不能访问类的数据部分 所以 引入 友元
friend time operator *();
不再使用 由于 operator *()函数不是成员函数 所以不需要 time::限定符 也不需要加上 friend
必须使用 友元 因为如果是成员函数 time<<cout形式的
如果是 友元函数就可以使用 cout<<time
cout 是ostream对象
void operator <<(ostream &os,const time & t)
{
}
这个函数不能连接
cout<<trip<<"Tuesday"
cout<<x<<y;
(cout<<x)<<y;
ostream &operator<<(ostream &os,const time &t);
ostream:输出至屏幕上 ofstream:输出至文件