回 帖 发 新 帖 刷新版面

主题:c++帮忙 不知道那里出错了

#include<iostream>
using namespace std;

class Date;
class Time;
void display(Date &,Time &);
class Time
{
public:
    Time(int,int,int);
  friend void display(Date &,Time &);
private:
    int hour;
    int minute;
    int sec;

};
class Date
{
public:
    Date(int,int,int);
    friend void display(Date &,Time &);
private:
    int month;
    int day;
    int year;
};
Time::Time(int h,int m,int s)
{
    hour=h;
    minute=m;
    sec=s;
}
void display(Time &d,Date &d2)
{
    
cout<<d.hour<<":"<<d.minute<<":"<<d.sec<<endl;


    cout<<d2.month<<"/"<<d2.day<<"/"<<d2.year<<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);
    display(d1,t1);


    while(1);
    return 0;
}

回复列表 (共2个回复)

沙发

你的友元函数是在类外声明的,注意看你的声明形式和你调用的形式反了。改一下就没问题了,代码如下:#include<iostream>
using namespace std;

class Date;
class Time;
void display(Date &,Time &);
class Time
{
public:
    Time(int,int,int);
  friend void display(Date &,Time &);
private:
    int hour;
    int minute;
    int sec;

};
class Date
{
public:
    Date(int,int,int);
    friend void display(Date &,Time &);
private:
    int month;
    int day;
    int year;
};
Time::Time(int h,int m,int s)
{
    hour=h;
    minute=m;
    sec=s;
}
void display(Date &d2,Time &d)
{
    
cout<<d.hour<<":"<<d.minute<<":"<<d.sec<<endl;


    cout<<d2.month<<"/"<<d2.day<<"/"<<d2.year<<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);
    display(d1,t1);


    while(1);
    return 0;
}

板凳

你好.我是全职网赚工作者.
如果你有时间有电脑.
想在网络上创业.请联系我..
项目绝对真实.详情QQ空间资料
加盟请联系 QQ908889846

我来回复

您尚未登录,请登录后再回复。点此登录或注册