友元函数以及重载运算符

来源:互联网 发布:linux培训多少钱 编辑:程序博客网 时间:2024/05/22 01:52

http://blog.csdn.net/insistgogo/article/details/6608672

一:使用友元函数的原因:
实现了类之间的共享,减少开销,提高系统的效率;

(缺点是:破坏了类的封装性,能不用尽量不用)

二:使用时机:
一般是:运算符的重载,数据的共享;

三:使用方法
因为友元函数没有this指针,则参数要有三种情况:

   1、  要访问非static成员时,需要`对象`做参数;--常用(友元函数常含有参数)   2、  要访问static成员或全局变量时,则不需要对象做参数   3、  如果做参数的对象是全局对象,则不需要对象做参数

四:友元函数的分类:

一:普通友元函数:使普通函数能够访问类的的友元。

语法:声明位置:共有私有都可以;
声明:friend + 普通函数声明;
实现位置:可以在类外或者类中;
实现代码:与普通代码相同(不过不用加friend和类::)
调用:类似普通函数直接调用;

class Student{public:    friend void show();};void show(){cout<<"hello world"<<endl;}

二:类Y 中的所欲成员函数都为类X中的一友元类

目的:使用单个声明使得Y类中的所有函数成为类X的友元;

声明:friend + 类名;
class girl;class boy{private:    char *name;    int age;public:    boy();    void display(girl &);};void boy::display(girl &x)//函数是boy的成员函数,也是girl中的友元函数{}class giel{private:char name;int age;friend boy;//声明boy 是girl的友元public:girl();};void    main(){boy b;girl g;b.dis(g);}

三:类Y的一个成员函数为类X的友元函数

声明:friend +成员函数声明;

友元函数和类的区别:友元函数没有this指针,类有,所以友元函数需要表明成员的出处;

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 伪音唱歌嗓子疼怎么办 小孩吊水手肿了怎么办 棉质地的裙子起褶子怎么办 孕妇吃了马苋菜怎么办 三非黑人抓住了怎么办 33岁了写字好丑怎么办 裤子熨焦了发亮怎么办 黑裤子熨亮了怎么办 。P手机没有钤声怎么办 处处被小人其欠负怎么办??? 衣服开了一个口怎么办 脸上长痘痘留下的坑怎么办 脸部被打得皮肤怎么办 打脸引起耳朵疼怎么办 被打了耳痛耳鸣怎么办 苹果6视频锁屏怎么办 抠耳朵抠疼了怎么办 图库的相片没了怎么办 遇到打假牌的人怎么办 部队保障卡丢了怎么办 廊坊武警学院取消现役学员怎么办 孩子去当兵联系不上怎么办 军训戴眼镜晒痕怎么办 想进部队体检没过怎么办 大腿跟小腿不直怎么办 腿被车门夹了怎么办 脚出汗穿凉鞋滑怎么办 玩游戏手出汗屏幕滑怎么办 新买的鞋子臭怎么办 当公民利益受到侵犯怎么办 唇钉里面长肉怎么办 宝宝舔了一口酒怎么办 头被玻璃门撞了怎么办 30多了还一事无成 未来怎么办 27岁失业了该怎么办 无业证明不给开怎么办 典型的缺乏运动的肥胖怎么办 30岁了不想结婚怎么办 专家解释欠30万怎么办 欠医院十几万钱怎么办 当你迷茫的时候怎么办