• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > C++之友元:友元函数和友元类详解

C++之友元:友元函数和友元类详解

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c++友元函数,c++友元函数实例,c++友元类,c++友元,友元函数等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

一、友元介绍
我们知道,类的成员函数可以访问同类的其他成员函数,包括公有、私有和保护成员。而类的外部函数只能访问类的公有成员。

友元是一种允许非类成员函数访问类的非公有成员的一种机制。
可以把一个函数指定为类的友元,也可以把整个类指定为另一个类的友元。

友元函数
友元类

二、友元函数
友元函数在类作用域外定义,但它需要在类体中进行说明
为了与该类的成员函数加以区别,定义的方式是在类中用关键字friend说明该函数,格式如下:

friend  类型 友元函数名(参数表);
友元的作用在于提高程序的运行效率

友元函数注意事项:
1、
友元函数不是类的成员函数,在函数体中访问对象的成员,必须用对象名加运算符“.”加对象成员名。但友元函数可以访问类中的所有成员(公有的、私有的、保护的),一般函数只能访问类中的公有成员。

2、友元函数不受类中的访问权限关键字限制,可以把它放在类的公有、私有、保护部分,但结果一样。

3、某类的友元函数的作用域并非该类作用域。如果该友元函数是另一类的成员函数,则其作用域为另一类的作用域,否则与一般函数相同。

4、友元函数破坏了面向对象程序设计类的封装性,所以友元函数如不是必须使用,则尽可能少用。或者用其他手段保证封装性。

三、友元类
如果某类B的成员函数会频繁的存取另一个类A的数据成员, 而A的数据成员的Private/Protectd限制造成B存取的麻烦, B只能通过A的Public的成员函数进行间接存取
把B做成A类的友元类,即A类向B类开放其Private/Protectd内容, 让B直接存取
友元类:一个类可以作另一个类的友元
友元类的所有成员函数都是另一个类的友元函数
友元类的声明:
friend class 类名;

友元类注意事项:
1、友元关系是单向的
2、友元关系不能被传递
3、友元关系不能被继承

TeleController.h :

int main(void)
{
    Television tv(1, 1);
    TeleController tc;
    tc.VolumeUp(tv);
    return 0;
}

</div>
将TeleController 类作为Television类的友元类,这样TeleController 类的成员函数就都可以访问Television类的所有成员,包括私有。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 有关C++继承与友元、继承与类型转换详解
  • 实例讲解在C++的函数中变量参数及默认参数的使用
  • 简要介绍C++编程中的友元函数和友元类
  • C++虚函数表实例分析
  • C++友元(Friend)用法实例简介
  • C++函数模板与类模板实例解析
  • C++中的friend友元函数详细解析
  • 关于C++中的友元函数的一些总结
  • C++之友元:友元函数和友元类详解
  • 解析C++中不能重载为友元函数的四个运算符

相关文章

  • 2017-05-28详解C++设计模式编程中对访问者模式的运用
  • 2017-05-28C++处理键盘输入的方法
  • 2017-05-28解析Linux内核的基本的模块管理与时间管理操作
  • 2022-04-30初中毕业能学会编程吗?
  • 2017-05-28C++并查集亲戚(Relations)算法实例
  • 2017-05-28在C++程序中开启和禁用Windows设备的无线网卡的方法
  • 2017-05-28VC++中HTControl控件类之CHTRichEdit富文本编辑控件实例
  • 2017-05-28C++俄罗斯方块游戏 无需图形库的俄罗斯方块
  • 2017-05-28浅析C和C++函数的相互引用
  • 2017-05-28简单解读C++中的虚函数

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C语言字符串快速压缩算法代码
    • 详解C++编程中的嵌套类的声明与其中的函数使用
    • 解析C++编程中的选择结构和switch语句的用法
    • 大数据情况下桶排序算法的运用与C++代码实现示例
    • VC读配置文件实例
    • C语言中对于循环结构优化的一些入门级方法简介
    • 详解C++中的this指针与常对象
    • C++入门之基础语法学习教程
    • 双向链表插入删除基本应用介绍
    • 详解C++中的指针结构体数组以及指向结构体变量的指针

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有