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()的定义可以在这之后。。。。。。
对于设定友元函数的类来说,友元函数是为此类定义了一个接口,通过这个接口可以,访问此类的私有成员,这对于不同类之间可以建立一种互通有无的通道。友元函数可以使普通的非成员函数
友元类:
对于设定友元类的类来说,友元类里的函数都有权利去访问此类的数据成员,完全可以通过友元类去对此类进行控制,而且可以完全省掉此类对自己数据比较麻烦的造作,这对于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()的定义可以在这之后。。。。。。
相关文章推荐
- 实用知识:音效播放的方法使用
- jQuery怎么选择自身元素andSelf()方法使用
- VIVADO FIR IP使用方法
- JRebel最新破解版及使用方法
- TortoiseGit操作本地仓库的详细使用方法(2)-分支操作
- 关于Editplus的一些使用方法
- JavaScript使用方法和技巧(一)
- 如何使用jquery GET方式请求调用asp.net方法
- Excel 逻辑函数if使用方法
- android中SQLite的使用总结,用excSQL和rawQuery方法实现一般得增删改查
- exp/imp使用配置文件的方法
- 基于VSCode环境的三种使用Python运行其他程序方法
- PHPEXCEL使用方法
- ubuntu下使用vi是方向键变乱码 退格键不能使用的解决方法
- android 卸载程序、清除数据、停止服务使用方法
- 使用枚举规范方法命名
- Android中bindService的使用方法
- Android Studio怎样提示函数使用方法
- Fragment使用出现空白页的解决方法
- DatePicker,TimePicker的使用方法