C++语法小记---友元
友元函数
延续C语言的结构体编程方式,直接访问类的私有成员,提高效率
友元分为函数友元和类友元
友元函数可以访问类的所有成员
友元类的所有成员函数都是友元函数
友元不具备传递性
友元函数和类的成员函数的区别
友元函数不是类的成员,只是声明
成员函数有this指针,而友元函数没有this指针
开发中不建议使用友元函数,破坏了类的封装性
函数友元例子
#include <iostream> using namespace std; class Test
{
private:
int a; public:
Test() { a = ;} Test(int a) {this->a = a;} void show()
{
cout << "a = " << a << endl;
} friend void g_show(Test t);
}; void g_show(Test t)
{
cout << "[g_show] t.a = " << t.a << endl;
return;
} int main()
{
Test t();
t.show();
g_show(t);
return ;
}
类友元例子
#include <iostream> using namespace std; class Test
{
private:
int a; public:
Test() { a = ;} Test(int a) {this->a = a;} friend class Friend;
}; class Friend
{
private:
Test t; public:
Friend() : t() {} void show()
{
cout << "Friend t.a = " << t.a << endl;
}
}; int main()
{
Friend f;
f.show(); return ;
}
C++语法小记---友元的更多相关文章
- Jinja2语法小记
jinja2模板语法小记 Jinja2模板中文文档 三种常见界定符 表达式 {{ ... }} 用于装载字符串.变量.函数调用等 语句 {% ... %} 用于装载控制语句,比如if判断.for循环等 ...
- C++语法小记---开篇
几句闲话 由于C++的语法非常的复杂,但是实际使用的过程中,经常使用的语法也就那么一些,还有比较多的语法很少被使用,时间一长就容易忘记,因此“C++语法小记”主要是将C++中不经常使用和容易忘记的语法 ...
- WINDOWS Server2008上部署Oracle10g及oracle SQL语法小记
首先安装10G客户端 情况一:一般都会安装到一般报错.因为10G是32BIT客户端.而操作系统是64位的.但是不会影响配置监听程序.自主开发的应用程序依然可以运行. 情况二:报错但是配置完监听程序始终 ...
- CSS语法小记
一.CSS语法结构 语法:选择符{属性:值} 例如:body{font-size:12px;} 参数说明: 1.选择符(Selector):指明这组样式所要针对的对象.可以是一个XHTML标签,例如h ...
- Python 3语法小记(四)字典 dictionary
字典是Python里面一种无序存储结构,存储的是键值对 key - value.关键字应该为不可变类型,如字符串.整数.包含不可变对象的元组. 字典的创建很简单,用 d = {key1 : value ...
- C++中对封装的语法支持——友元
友元 1.友元就是授权给某个函数.每个成员函数.某个类具有访问类内部私有成员的权限. 2.为什么用友元?友元可以允许某个类.函数直接访问类内部私有数据,减少函数调用开销,提高效率. 3.友元函数不是成 ...
- Razor语法小记
1.代码块中,<text>标签用来输出,如: @{ <text>sdfsdf</text> } 输出Html: sdfsdf
- Python 3语法小记(六)条件、循环和assert、pass、del
条件: if 条件: 语句块 elif: 语句块 else: 语句块 elif 表示 else if 这居然是合法的!!!1 < x < 2!!! >> ...
- python3语法小记(二)列表 和 元组
列表(list): 列表就像一个线性容器,但是比C++的 lis t扩展多得多 列表里的元素可以是相同类型,也可以包含各种类型,比如列表里嵌套另一个列表 >>> L1 = [1,2, ...
随机推荐
- CCNA-Part1:网络基础概念
由于身处一家网络公司,日常项目中设计到的网络概念较多,恰逢之后公司组织相关培训.借此机会,打算写下一系列文章用于之后梳理并回顾.文章主要涉及 NA,NP 中所覆盖的知识.由于网络分为较多方向,如路由交 ...
- redis高级命令4 持久化机制 、事务
redis的事务是支持很简单,基本没有啥用我们来看下面的列子 我们开启一个事务,在事务中执行了age 加1,set a4 ,还有对一个字符串进行加一,对字符串加1导致了事务失败,按道理incr age ...
- BERT的前世今生
Transformer Transformer来自论文: All Attention Is You Need 别人的总结资源: 谷歌官方AI博客: Transformer: A Novel Neura ...
- shell把字符串中的字母去掉,只保留数字
1 编辑测试文件 [root@hz-kvm cephdisk3]# cat > 1.txt <<EOF> 120Tib> EOF 2 显示文件[root@hz-kvm c ...
- 恕我直言你可能真的不会java第8篇-函数式接口
一.函数式接口是什么? 所谓的函数式接口,实际上就是接口里面只能有一个抽象方法的接口.我们上一节用到的Comparator接口就是一个典型的函数式接口,它只有一个抽象方法compare. 只有一个抽象 ...
- sql server 分组查询结合日期模糊查询
分组查询: https://www.cnblogs.com/netserver/p/4518995.html 日期格式化格式: http://blog.csdn.net/qq_16769857/art ...
- 【vue】---- ElementUI 实现上传Excel
1.功能描述:vue 项目使用 el-upload 实现上传 Excel. 2.功能效果:在el-upload基础上做了样式整改. 3.功能实现: // el-upload 上传组件 <temp ...
- mysql数据库 创建、查看、重命名、复制和删除的基本操作
在数据库中,表是最重要.最基本的对象,是存储数据的基本单位.数据表从哪里来呢?数据表由关系模式转换而来.但不是简单的转换. 在设计表结构时要考虑下面几个方面: 字段名要通俗易懂且具有代表性,字段名不允 ...
- java NIO 原理解析之学习笔记
关键抽象 1.Buffer缓冲区 NIO数据传递模型,是一个连续的内存区域.所有数据传递均通过buffer类处理:NIO提供了字符串.整形.字节.堆等多种缓冲区. 2.Channel(通道) NIO把 ...
- python数据处理(六)之数据清洗:标准化和脚本化
1.数据归一化和标准化 a. 归一化:对数据集进行计算,使数据都位于一个特定的范围\ b.标准化: c.删除离群值 2.数据存储 a.保存到SQLite数据库中 b.导出到简单的文件中csv 3.找到 ...