首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于友元有关问题friend

2012-04-05 
关于友元问题friend我想用在Time类中的成员函数分别成为Date和Box 的成员函数的朋友。这样写,代码错误,请问

关于友元问题friend
我想用在Time类中的成员函数分别成为Date和Box 的成员函数的朋友。这样写,代码错误,请问应该怎样写呢??
求帮助!!谢谢!!
#include <iostream>
using namespace std;
class Date;
class Box;
class Time
{
  public:
  Time(int,int ,int);
  void display(Time &,Box &);
  private:
  int hour;
  int minute;
  int sec;
};
class Date
{
  public:
  Date(int,int,int);
  friend void Time::display(Date &,Box &);
  private:
  int month;
  int day;
  int year;
};

class Box
{
  public:
  Box(int a,int b):a1(a),b1(b){}
  friend void Time::display(Date &,Box &);
  private:
  int a1;int b1;
}
Time::Time(int h,int m,int s)
{
  hour=h;minute=m;sec=s;
}
void Time::display(Date &d,Box &e)
{
  cout<<d.month<<"/"<<d.day<<"/"<<d.year<<endl;
  cout<<e.a1<<" "<<e.b1<<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);
  Box e1(101,999);
  t1.display(d1,e1);
  return 0;
}

[解决办法]
见注释

C/C++ code
#include <iostream>using namespace std;class Date;class Box;class Time{public:    Time(int,int ,int);    //void display(Time &,Box &);        void display(Date &, Box &);private:    int hour;    int minute;    int sec;};class Date{public:    Date(int,int,int);        friend void Time::display(Date &,Box &);private:    int month;    int day;    int year;};class Box{public:    Box(int a,int b):a1(a),b1(b){}    friend void Time::display(Date &,Box &);       int a1;int b1;};               //此处缺少了分号 ; Time::Time(int h,int m,int s){    hour=h;    minute=m;    sec=s;}void Time::display(Date &d,Box &e)                {    cout<<d.month<<"/"<<d.day<<"/"<<d.year<<endl;    cout<<e.a1<<" "<<e.b1<<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);    Box e1(101,999);    t1.display(d1,e1);    return 0;} 

热点排行