游戏开发之友元类和友元函数(C++基础)
游戏开发之友元类和友元函数(C++基础)
- 可以访问该类的私有成员。
- 友元关系不能被继承。
- 友元关系是单向的。
- 友元没有传递性,A是B的朋友、B是C的朋友、A不一定是C的朋友。
//友元类//可以访问其私有成员//友元关系不能被继承//友元关系是单向的//友元没有传递性,A是B的朋友、B是C的朋友、A不一定是C的朋友class A{//友元类的声明friend class B;//友元函数的声明friend void Print(A &a);//重载输入流运算符friend std::istream& operator>>(std::istream& in, A& a);public:private:int m;void Print(){std::cout << "A::" << m << std::endl;}};class B{public:void Print(A &a){a.m = 200;a.Print();}};//友元函数void Print(A &a){a.Print();}//A& a可以修改//重载运算符std::istream& operator>>(std::istream& in, A& a){in >> a.m;return in;}int main(){A a;B b;b.Print(a);//使用输入流cin时,触发输入流重载函数,输入值赋给m。std::cin >> a;Print(a);return 0;}
游戏开发之友元类和友元函数(C++基础)相关推荐
- 【C++ 基础篇:21】:friend 友元四连问:什么是友元?友元类?友元函数?什么时候用友元?
本系列 C++ 相关文章 仅为笔者学习笔记记录,用自己的理解记录学习!C++ 学习系列将分为三个阶段:基础篇.STL 篇.高阶数据结构与算法篇,相关重点内容如下: 基础篇:类与对象(涉及C++的三大特 ...
- 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第26讲:PHP函数
陈力:传智播客古代 珍宝币 泡泡龙游戏开发第26讲:PHP函数 什么是PHP函数,如何通过function定义一个函数,如何理解函数的调用过程.这些问题都是网站建设中经常遇到的程序设计问题.在进行网站 ...
- C++总结 友元类和友元函数
在网上看到的文章, 写的挺全的, 具有总结性质. 于是转过来了.. 源地址(呵呵, 他也是转的)http://www.cnblogs.com/skyczw/archive/2008/05/27/12 ...
- 友元实例:友元类及友元函数
学习了c++这么久,一直没有对友元进行了解,据说友元不是特别好用(据说,不是我说的),因此直到今天才去了解.其实友元确实不是很常用,但友元功能确实很实用,它不但能够释放类中的非公有成员,同时还能保证了 ...
- C++友元:友元函数、友元类和友元成员函数
Table of Contents 1.友元函数 2.友元类 3.友元成员函数 友元小结: 参考资料: 有些情况下,允许特定的非成员函数访问一个类的私有成员,同时仍阻止一般的访问,这是很方便做到的.例 ...
- C++友元类和友元函数
特点: 能访问私有成员 破坏封装性 友元关系不可传递.若B是A的友元,C是B的友元,但C不一定是A的友元,要看类中是否有申明. 友元关系的单向性.若A是B的友元,但B不一定是A的友元,要看类中是否申明 ...
- Th3.9:友元函数、友元类、友元成员函数详述
本博客将记录:类的相关知识点的第9节的笔记! (这个在学习C++基础课程时已经学习过一次了,这里再次简单地回顾一下而已) 今天总结的知识分为以下3个点: 一.友元函数(对于非成员函数而言) ...
- java友元类_友元实例:友元类及友元函数
学习了c++这么久,一直没有对友元进行了解,据说友元不是特别好用(据说,不是我说的),因此直到今天才去了解.其实友元确实不是很常用,但友元功能确实很实用,它不但能够释放类中的非公有成员,同时还能保证了 ...
- java中友元类_友元类成员的依赖关系|循环依赖
定义一个CBottle类,另一个类CCarton的某个成员对CBottle进行操作,因此在CBottle类中赋予CCarton成员的友元权利.我们很容易写出如下代码: //CBottle类的头文件 b ...
- Java游戏开发——飞行射击类游戏
使用到的素材文件夹: 素材说明:bg0.jpg是背景图片.bomb_enemy是敌机爆炸时按顺序播放的四帧图片,bullet_0.png是子弹图片,enemy_alive.png是敌机图片,playe ...
最新文章
- python爬虫案例-python爬虫详细解析附案例
- ubuntu mysql 多端口_ubuntu 16.04下mysql5.7.17开放远程3306端口
- Git最最常用的命令
- 工行黄金递延业务AU(T+D)风险问题答案
- 分散mysql的写入压力_缓解MySQL写入压力和主从延迟的尝试
- 关于XML字符串和XML Document之间的转换
- php爬虫模拟登陆爬取数据全过程
- CSS常见 属性 框架 及常用选择器
- Android自定义锁屏实现----仿正点闹钟滑屏解锁
- 让复杂Json数据和对象自由转换 --- Gson
- Es7.x使用RestHighLevelClient进行聚合操作
- 经典算法系列之不死神兔
- linux日志查看技巧
- C++中标准模板库STL基本概念
- Spark学习-DAY1
- 互联网安全真正的守卫神
- mfp 服务器控制中心,固网1008MFP驱动
- 重要前端面试题,来自一个2022年面试大牛(上)
- linux vim安装molokai配色方案
- mysql_5.5.40-win64.msi/mysql_5.5.40-win32.msi位安装包下载
热门文章
- PyTorch(总)---PyTorch遇到令人迷人的BUG与记录
- pytorch_LSTM预测股票行情
- pytorch_CNN实现文本情感分类
- matplotlib—plt.pie绘制饼状图及参数详解
- bug-Skipping optimization due to error while loading function libraries: Invalid argument: Functions
- fig, ax = plt.subplots(figsize = (a, b))解析 与 plt.subplot()函数解析
- 吴恩达深度学习——深度学习的实用指南
- argparse模块用法
- Django ORM models操作
- Kubernetes学习指南,轻松拥抱云原生