(4.9)--(10)友元面向对象程序设计.ppt
《(4.9)--(10)友元面向对象程序设计.ppt》由会员分享,可在线阅读,更多相关《(4.9)--(10)友元面向对象程序设计.ppt(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、面向对象程序设计1第1章 C+语言概述2友元友元01.友元函数友元函数02.友元类友元类3第4章类与对象 友元友元函数友元函数友元类友元类class 类名类名 /类中的其他成员类中的其他成员 friend 类型类型 函数名函数名(形参表形参表);/类中的其他成员类中的其他成员;友元的概念友元的概念C+提供了一种允许外部类和外部函数存取类的私有成员和保护成员的辅助方法,即将它们声明为一个给定类的友元友元,使其具有类成员函数的访问权限。友元友元提供了不同类或对象的函数成员之间、类的函数成员与一般函数之间进行数据共享的机制。通过友元友元机制,一个普通函数或者类的函数成员可以访问到封装在某一个类的私有
2、数据成员,即把数据的隐藏打开了一个小窗口,从中看到类的一些内部属性;友元友元在一定程度上破坏了封装,这需要设计者在共享和封装之间找到一个平衡。友元有两种友元有两种.友元函数友元函数4第4章类与对象 友元【例4-26】设计一个复数类Complex,用成员函数、友元函数分别实现两个复数类对象的比较,即看两个复数是否相等。#include class Complexpublic:Complex();Complex(const Complex&);Complex(double re,double im);friend bool equal(Complex c1,Complex c2);void set
3、_real(double re)real=re;void set_imag(double im)imag=im;double get_real()return real;double get_imag()return imag;void disp()coutreal+imagi;private:double real;double imag;友元函友元函数声明数声明Complex:Complex(double re,double im)real=re;imag=im;Complex:Complex(const Complex&comp)real=comp.real;imag=comp.imag
4、;友元函友元函数实现数实现bool equal(Complex c1,Complex c2)if(c1.real=c2.real)&(c1.imag=c2.imag)return true;else return false;bool equal(Complex c1,Complex c2)if(c1.get_real()=c2.get_real()&(c1.get_imag()=c2.get_imag()return true;else return false;成员函成员函数实现数实现5int main()Complex c1(2,3),c2(3,4);if(equal(c1,c2)cou
5、t这两个复数相等!endl;else cout这两个复数不相等!endl;return 0;说明:友元函数为非成员函数,以关键字friend声明,一般在类中进行一般在类中进行声明,在类外进行定义声明,在类外进行定义。友元函数的声明可以放在类声明中的任何位置位置,即不受访问权限的控制,可以在类内实现,可以在类外实现,在类外实现时不再需要friend关键字。友元函数不是函数成员,它是类的朋友,没有类域限定符。友元函数可以通过对象名访问类的所有成员,包括私有成员。普通函数声明为友函数,可以访问类中所有的成员。一个函数可以是多个类的友元函数,可以将一个类的成员函数声明为另一个类的友元。格式 frien
6、d 函数类型函数类型 类名类名:友元函数名(参数表)友元函数名(参数表);C+不允许将构造函数、析构函数和虚函数声明为友元函数。在有些编译器有些编译器中不支持#include头文件,可改为#include,这是由于某些编译器不兼容C+新标准造成的。第4章类与对象 友元6第4章类与对象 友元2.友元类友元类当一个类中的所有函数成员都是另一个类的友元的时候,我们可以定义整个类是另一当一个类中的所有函数成员都是另一个类的友元的时候,我们可以定义整个类是另一个类的友元,此时该友元称为个类的友元,此时该友元称为友元类友元类。class Student;class Teacher public:/类中的其
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 4.9 10 面向 对象 程序设计
限制150内