C++ 关于友元的问题

wangqiang8848 2008-09-18 01:55:43
我写的C++程序,总是过不去编译,请大哥大姐多多指教
#include<iostream>
using namespace std;


class Date;
class Time;

void display(Time &,Date &);//友元函数

class Time
{
public:
Time(int,int,int);

friend void display(Time&,Date &); //友元函数Time中声明
private:
int hour;
int minute;
int sec;

};

class Date
{
public:
Date(int,int,int);
friend void display(Time &,Date &);// 友元函数在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;
}
*/
void display(Time t1,Date d1)
{
cout<<d1.month<<":"<<d1.day<<":"<<d1.year<<":"<<endl;
cout<<t1.hour<<":"<<t1.minute<<":"<<t1.sec<<":"<<endl;
}
Date::Date(int m,int d,int y)
{
month=m;
day=d;
year=y;
}

int main(void)
{

Date D1(10,10,12);
Time t1(12,15,46);
display(t1,D1);
return 0;

}
...全文
57 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangqiang8848 2008-09-21
  • 打赏
  • 举报
回复
多谢各位
御剑逍遥恪 2008-09-18
  • 打赏
  • 举报
回复
总结一下~ 将Time 和Date改成
STime 和 SDate

void display(Time t1,Date d1) 改成
void display(STime &t1,SDate &d1)

问题解决~~


御剑逍遥恪 2008-09-18
  • 打赏
  • 举报
回复
貌似是用display传参数 有问题~~
jacknes009 2008-09-18
  • 打赏
  • 举报
回复
#include <iostream>
using namespace std;


class SDate;
class STime;

void display(STime &,SDate &);//友元函数

class STime
{
public:
STime(int,int,int);

friend void display(STime&,SDate &); //友元函数STime中声明
private:
int hour;
int minute;
int sec;

};

class SDate
{
public:
SDate(int,int,int);
friend void display(STime &,SDate &);// 友元函数在SDate中声明
private:
int month;
int day;
int year;
};


STime::STime(int h,int m,int s)
{

hour=h;
minute=m;
sec=s;
}
/*
void STime::display(SDate &d)
{
cout < <d.month < <":" < <d.day < <":" < <d.year < <":" < <endl;
cout < <hour < <":" < <minute < <":" < <sec < <":" < <endl;
}
*/
void display(STime &t1,SDate &d1)
{
cout << d1.month <<":" <<d1.day <<":" <<d1.year <<":" <<endl;
cout <<t1.hour <<":" <<t1.minute <<":" <<t1.sec <<":" <<endl;
}
SDate::SDate(int m,int d,int y)
{
month=m;
day=d;
year=y;
}

int main(void)
{

SDate D1(10,10,12);
STime t1(12,15,46);
display(t1,D1);
return 0;

}
试试。

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧