C程序设计《面向对象的妥协》

C程序设计《面向对象的妥协》

ID:45058057

大小:940.50 KB

页数:37页

时间:2019-11-08

C程序设计《面向对象的妥协》_第1页
C程序设计《面向对象的妥协》_第2页
C程序设计《面向对象的妥协》_第3页
C程序设计《面向对象的妥协》_第4页
C程序设计《面向对象的妥协》_第5页
资源描述:

《C程序设计《面向对象的妥协》》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C++程序设计面向对象的妥协本章学习要点友元函数友元类静态数据成员静态成员函数第6章面向对象的妥协本章学习目标了解友元函数的概念,掌握友元函数的定义与使用了解友元类的概念掌握静态数据成员的定义与使用掌握静态成员函数的定义与使用第6章面向对象的妥协友元可以访问与其有好友关系的类中的任何成员。§6.1封装的破坏——友元友元友元函数友元类如果在本类以外的其他地方定义了一个函数(这个函数可以是不属于任何类的普通函数,也可以是其他类的成员函数),在类体中用friend对其进行声明,此函数就称为本类的友元函数。友元函数可以访问这个类中的任何成员。如何将普通函数声明为友元函数呢?看下面这个

2、简单的例子:§6.1封装的破坏——友元6.1.1友元函数【例6-1】友元普通函数。#includeusingnamespacestd;classClock//声明Clock类{public:Clock(int,int,int);friendvoiddisplay(Clock&);private:inthour;intminute;intsecond;};§6.1.1友元函数Clock::Clock(inth,intm,ints)//构造函数{hour=h;minute=m;second=s;}//这是友元函数,形参t是Clock类对象的引用voiddisp

3、lay(Clock&t){cout<usingnamespacestd;classDate;//对Date类的提前引用声明classClock/

4、/声明Clock类{public:Clock(int,int,int);voiddisplay(Date&);private:inthour,minute,second;};§6.1.1友元函数classDate//声明Date类{public:Date(int,int,int);friendvoidClock::display(Date&);private:intmonth;intday;intyear;};§6.1.1友元函数Clock::Clock(inth,intm,ints)//Clock类的构造函数{hour=h;minute=m;second=s;}voidCl

5、ock::display(Date&dd){cout<

6、(d);return0;}§6.1友元函数程序运行结果如下:12/25/200410:13:56不仅可以将一个函数声明为一个类的“朋友”,而且可以将一个类(例如B类)声明为另一个类(例如A类)的“朋友”。这时B类就是A类的友元类。友元类B中的所有成员函数都是A类的友元函数,可以访问A类中的任何成员。§6.1封装的破坏——友元6.1.2友元类classStudent;classTeacher{public:voidassigngrades(Student&s);//给出学生成绩protected:intstu_count;//学生人数Student*plist[100];//学

7、生数组};§6.1.2友元类classStudent{public:friendTeacher;//友元类…protected:intnum;stringname;floatscore;};…§6.1.2友元类声明友元类的一般形式为:friend类名;关于友元,有三点需要说明:(1)友元函数的声明可以出现在类的任何地方(包括在private和public部分),也就是说友元的说明不受成员访问控制符的限制。§6.1.2友元类(2)友元关系是单向的而不是双向的,如果声明了B类是A类的友元类,不等于A类是B类

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。