C++友元使用方法

友元函数:

      对于设定友元函数的类来说,友元函数是为此类定义了一个接口,通过这个接口可以,访问此类的私有成员,这对于不同类之间可以建立一种互通有无的通道。友元函数可以使普通的非成员函数

友元类:

      对于设定友元类的类来说,友元类里的函数都有权利去访问此类的数据成员,完全可以通过友元类去对此类进行控制,而且可以完全省掉此类对自己数据比较麻烦的造作,这对于MVC模型来说最好不过了。

友元函数的声明:

class Screen

{

       friend void f(){/*you can define friend function in the class body*/}此友元函数若在此类内中定义,则其作用域将扩大至包括此类的定义的作用域

friend Window_Mgr&  Window_Mgr::relocate(Window_Mgr::index,Window_Mgr::index,Screen&);

//…rest of Screen

};

 友元类的声明:

class Screen

{

friend class Window_Mgr;

//…rest of Screen

};

友元函数的作用域:

    在前边的例子中,若友元函数是一个类的成员函数,则这个类必须在之前定义,否侧,就不能将此函数职位友元函数,

上例中,若类Window_Mgr 在之前并未定义,则将Window_Mgr&  Window_Mgr::relocate(Window_Mgr::index,Window_Mgr::index,Screen&);指定为友元是不允许的是错误,

 

    更一般地讲,必须先定义包含成员函数的类,才能将成员函数设为友元。但假若对于非常成员函数来讲,不必须在设为友元函数之前定义,对于友元类也是一样,上例中,friend class Windows_Mgr 与void f()的定义可以在这之后。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zanglengyu

敲碗要饭

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值