普通的友元函数
#include <iostream> using namespace std; class Time { public: Time(int,int,int); friend void display(Time &); private: int hour; int minute; int sec; }; Time::Time(int h,int m,int s) { hour=h; minute=m; sec=s; } void display(Time& t) { cout<<t.hour<<":"<<t.minute<<":"<<t.sec<<endl; } int main( ) { Time t1(10,13,56); display(t1); return 0; }
友元成员函数——另一类中的成员函数作友元
#include <iostream> using namespace std; class Date; //对Date类的提前引用声明 class Time { public: Time(int,int,int); void display(Date &); private: int hour; int minute; int sec; }; class Date { public: Date(int,int,int); friend void Time::display(Date &); private: int month; int day; int year; }; Time::Time(int h,int m,int s) { hour=h; minute=m; sec=s; } void Time::display(Date &d) { cout<<d.month<<"/"<<d.day<<"/"<<d.year<<endl; cout<<hour<<":"<<minute<<":"<<sec<<endl; } Date::Date(int m,int d,int y) { month=m; day=d; year=y; } int main( ) { Time t1(10,13,56); Date d1(12,25,2004); t1.display(d1); return 0; }
友元类
class Date; ///对Date类的提前引用声明 class Time { public: Time(int,int,int); void add(Date &); void display(Date &); private: int hour; …… }; void Time::add(Date &d) { if(d.day>30) … if(d.month>12) … } class Date { public: Date(int,int,int); friend class Time; private: int month; …… }; int main( ) { Time t1(23,59,32); Date d1(12,25,2004); t1.add(d1); t1.display(d1); return 0; }