您的位置:首页 > 编程语言 > C语言/C++

C++友元使用方法

2012-12-17 14:01 148 查看
友元函数:

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

友元类:

对于设定友元类的类来说,友元类里的函数都有权利去访问此类的数据成员,完全可以通过友元类去对此类进行控制,而且可以完全省掉此类对自己数据比较麻烦的造作,这对于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()的定义可以在这之后。。。。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: