C++之友元函数和友元类
来源:互联网 发布:淘宝店铺收藏和关注 编辑:程序博客网 时间:2024/05/21 08:43
一、友元函数和友元类
1.1为什么要使用友元函数
在实现类之间数据共享时,减少系统开销,提高效率。如果类A中的函数要访问类B中的成员(例如:智能指针类的实现),那么类A中该函数要是类B的友元函数。具体来说:为了使其他类的成员函数直接访问该类的私有变量。即:允许外面的类或函数去访问类的私有变量和保护变量,从而使两个类共享同一函数。
实际上具体大概有下面两种情况需要使用友元函数:(1)运算符重载的某些场合需要使用友元。(2)两个类要共享数据的时候。
1.2特点
友元函数在类中只有声明,没有实现,友元函数不是类的内部函数,是一个全局函数
友元函数的声明 不受类的访问控制 限制,可以放在类内部的任意位置
友元函数破坏了类的封装性
1.3声明
friend 用来声明 友元函数:可以访问类的私有成员变量
友元类:
friend也可以用来声明友元类
友元类中所有函数都是该类的友元函数
友员类通常设计为一种对数据操作或类之间传递消息的辅助类
#include <stdio.h>class Test2_2;class Test2_1{friend void printA(Test2_1 &obj);//声明友元函数friend Test2_2; //声明友元类public:Test2_1 (int a){this->a = a;}void print(){printf ("a = %d\n", a);}private:int a;};class Test2_2{public:void print(Test2_1 &obj){printf ("a = %d\n", obj.a);}private:int a;};void printA(Test2_1 &obj){// 私有成员不能访问printf ("a = %d\n", obj.a);}int main2_1(){Test2_1 a(10);a.print();printA(a);return 0;}
阅读全文
0 0
- 【C++】友元类和友元函数(转)
- C++: 友元函数和友元类详解
- C++之友元:友元函数和友元类
- C++之友元:友元函数和友元类详解
- C++之友元函数和友元类
- friend之友元函数和友元类
- c++之友元函数和友元类
- C++之友元函数和友元类
- C++之友元函数和友元类
- 『C/C++』友元函数和友元类
- C++——友元函数和友元类
- 【C++基础之十】友元函数和友元类
- 【C++基础之十】友元函数和友元类
- C++学习之友元类和友元函数
- 【C++基础之十】友元函数和友元类
- C++之friend友元类和友元函数
- 友元函数和友元类
- 友元函数和友元类
- 阻塞非阻塞与同步异步
- jQuery easyUI分页的实现
- bzoj2301 [HAOI2011]Problem b(求gcd==k的个数)(莫比乌斯反演+容斥原理)
- Filter
- iis搭建ftp服务器及身份验证设置
- C++之友元函数和友元类
- jqueryUtil.js(悬浮框的公共js)
- zookeeper 集群安装配置启动
- 微框架 spring boot
- XCode新增快捷键
- 浅谈神经网络算法
- SQL Server数据归档的解决方案
- 1005. Stone Pile
- AndroidStudio绑定android sdk源码