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

友元函数有关问题

2012-02-19 
友元函数问题eg:#include iostream.hclasstime{public:time(int,int,int)friendvoiddisplay(time&)pub

友元函数问题
eg:
#include <iostream.h>
class   time
{
public:
time(int,int,int);
friend   void   display(time&);
public:
int   hour;
int   minute;
int   sec;
};

time::time(int   h,int   m,int   s)
{
hour=h;
minute=m;
sec=s;
}

void   display()
{
time   g;
cout < <g.hour < < ": " < <g.minute < < ": " < <g.sec < <endl;
}

void   main()
{
time   t(12,13,14);
display();
}

这样子不行啊??为什么??
难道一样要改成下面这样子??
#include <iostream.h>
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&g)
{

cout < <g.hour < < ": " < <g.minute < < ": " < <g.sec < <endl;
}

void   main()
{
time   t(12,13,14);
display(t);
}

为什么??谁能帮我解释一下吗??先谢了~~~~

[解决办法]
void display(time&);
void display()

他们是两个函数,
构成重载 ~
[解决办法]
你没有默认构造函数time()
[解决办法]
class Time;
void display(Time g);

class Time
{
public:
Time(int h,int m,int s);
friend void display();
public:
int hour;
int minute;
int sec;
};

Time::Time(int h,int m,int s)
{
hour=h;
minute=m;
sec=s;
}

void display(Time g)
{
cout < <g.hour < < ": " < <g.minute < < ": " < <g.sec < <endl;
}

void main()
{
Time t(12,13,14);
display(t);
}

热点排行