有些函数在类里面,但却不能引用该类的私有对象成员
#include <iostream>
using namespace std;
class Time
{
public:
Time(int,int,int);
friend void display(Time &); //声明display为友元函数,且必须声明为友元函数
private:
int hour;
int minute;
int sec;
};
{
public:
Time(int,int,int);
friend void display(Time &); //声明display为友元函数,且必须声明为友元函数
private:
int hour;
int minute;
int sec;
};
Time::Time(int h,int m,int s)
{
hour = h;
minute = m;
sec = s;
}
{
hour = h;
minute = m;
sec = s;
}
void display(Time&t) //这是普通函数,形参t是Time类对象的引用
{
cout << t.hour << ":" << t.minute << ":" << t.sec << endl;
}
{
cout << t.hour << ":" << t.minute << ":" << t.sec << endl;
}
int main()
{
Time t1(10,13,56);
display(t1);
return 0;
}
{
Time t1(10,13,56);
display(t1);
return 0;
}
因为该函数以对象Time做形参,虽然该函数在类Time里面,但它不属于该对象,因此不能直接引用该函数的私有成员,必须声明为友元函数