大神求解这是怎么回事,为什么在第四十行的位置,hour,等显示不可访问呢?

德忱 2014-06-12 03:13:14
#include<iostream>
using namespace std;
class Date;
class Time
{
public:
Time(int,int,int);
friend void display(Date &);
private:
int hour;
int minute;
int sec;
};

class Date
{
public:
Date(int,int,int);
friend void display(Date &);
private:
int mouth;
int day;
int year;
};

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

void display(Date &d)
{
cout<<d.mouth<<" /"<<d.day<<" /"<<d.year<<endl;
}

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

Date::Date(int m,int d,int y)
{
mouth = m;
day = d;
year = y;
}

int main()
{
Time t1(10,13,56);
Date d1(12,25,2004);
display(d1);
display(t1);
return 0;
}
...全文
126 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
德忱 2014-06-12
  • 打赏
  • 举报
回复
引用 10 楼 peterzhangxl 的回复:
第8行 friend void display(Date &); 改为 friend void display(Time &);
明白了,谢谢。。。
德忱 2014-06-12
  • 打赏
  • 举报
回复
引用 9 楼 wen_eric 的回复:
[quote=引用 7 楼 klmn111aaa 的回复:] [quote=引用 2 楼 wen_eric 的回复:] 楼主的结贴率太“高”了,我知道怎么回事也不好意思告诉你啊
人家是第一次提问。。。[/quote]数据成员hour的访问权限设置成了private的话,只能在类内访问,不能在类外访问。[/quote总算搞明白了。嘿嘿。谢谢诸位。
peterzhangxl 2014-06-12
  • 打赏
  • 举报
回复
第8行 friend void display(Date &); 改为 friend void display(Time &);
wen_eric 2014-06-12
  • 打赏
  • 举报
回复
引用 7 楼 klmn111aaa 的回复:
[quote=引用 2 楼 wen_eric 的回复:] 楼主的结贴率太“高”了,我知道怎么回事也不好意思告诉你啊
人家是第一次提问。。。[/quote]数据成员hour的访问权限设置成了private的话,只能在类内访问,不能在类外访问。
wen_eric 2014-06-12
  • 打赏
  • 举报
回复
引用 5 楼 u014440417 的回复:
引用 2 楼 wen_eric 的回复:
楼主的结贴率太“高”了,我知道怎么回事也不好意思告诉你啊
结贴率?什么意思,嘿嘿,我是个小菜鸟,真的不懂,
意思就是说,你即使你的问题分数给的再高,你不结贴给分,别人怎么帮你呢?我得向三楼的哥们学习,慷慨一些才行啊。
klmn111aaa 2014-06-12
  • 打赏
  • 举报
回复
引用 2 楼 wen_eric 的回复:
楼主的结贴率太“高”了,我知道怎么回事也不好意思告诉你啊
人家是第一次提问。。。
德忱 2014-06-12
  • 打赏
  • 举报
回复
引用 3 楼 jianwen0529 的回复:
私有不可在类外访问。
你把函数声明为该类的友元函数试试。
你的声明友元函数只有一个
void display(Date &d);

void display(Time &t); //没有
德忱 2014-06-12
  • 打赏
  • 举报
回复
引用 2 楼 wen_eric 的回复:
楼主的结贴率太“高”了,我知道怎么回事也不好意思告诉你啊
结贴率?什么意思,嘿嘿,我是个小菜鸟,真的不懂,
幻夢之葉 2014-06-12
  • 打赏
  • 举报
回复
引用 2 楼 wen_eric 的回复:
楼主的结贴率太“高”了,我知道怎么回事也不好意思告诉你啊
第一次提问可以理解
幻夢之葉 2014-06-12
  • 打赏
  • 举报
回复
私有不可在类外访问。 你把函数声明为该类的友元函数试试。 你的声明友元函数只有一个 void display(Date &d); void display(Time &t); //没有
wen_eric 2014-06-12
  • 打赏
  • 举报
回复
楼主的结贴率太“高”了,我知道怎么回事也不好意思告诉你啊
德忱 2014-06-12
  • 打赏
  • 举报
回复
题目要求是把display放在类外声明,作为普通函数,类内作为声明为友元函数,主函数中调用,display调用time类和date类的私有数据,输出年月日,时分秒
随着通信电子技术的迅速发展,信息技术给家居业产生了深远的影响,家居环境的智能化监控已经成为智能家居的一个重要的发展方向。人们逐渐对自己的生活提出一种更高的要求,他们需要一种智能化、可交互,并且融合现代创新科技的产品来改善他们的生活环境,使他们生活更加安全、舒适、便捷、智能。本文根据智能家居的发展背景和研究现状,并且从实用性和可性角度出发,研究设计了一种基于STM32单片机的智能家居系统。该系统由一个多功能综合的技术系统组成,各个多功能子系统间具有协同配合能力。基于STM32单片机实现的功能子系统包括:智能温度检测,智能湿度检测,智能烟雾/火灾检测智能检测,无线传输,人机交互机构,风扇调节,报警模块。 整个系统分为前端51单片机采集板和后端STM32单片机接收板。 采集板使用DHT11温湿度传感器、MQ烟雾传感器完成室内家居环境的采集。然后通过nRFL24L01将采集到的数据发送给后端。接收板使用LCD1602完成数据显示、使用蜂鸣器模块报警,使用风扇驱动模块调节室内家居环境。本文完成了智能家居控制系统前端、后端软硬件的设计,使用Altium designer绘制了电路原理图,使用Keil C完成了51单片机和STM32单片机的编程与调试。 最后,对本文设计的基于STM32的智能家居控制系统进部署调试。试验结果表明,该系统可成功应用在智能家居环境检测调节和火灾安全防护的领域,可提高家居生活智能化水平。

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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