C++内部类、匿名对象详解

目录

听说点赞的UU会撞大运哦!

内部类概念:

如何理解内部类?

匿名对象:

相关知识:


内部类概念:


一个类B定义在类A的内部,这个类B就是A的内部类
特点:
1、这个类B受到A类的类域的限制(而类域的限制就是访问访问权限,也就是访问限定符)
2、内部类天生就是外部类的友元类,什么意?就是外部类可以访问外部类的私有,但是外部类不能访问内部类
注意友元的定义,内部类是外部类的友元,即是说内部类是外部类的朋友,具有单向性

如何理解内部类?

这个内部类怎么理解呢?
可以理解为就是一个全局的类,但是访问受到外部类的类域的限制;以及有一个友元关系。仅此而已,不要想的太复杂
一般的应用场景比较少

匿名对象:


与匿名对象对应的是有名字的对象,也就是说没有名字
有名对象,在声明的时候给一个名字。例如A a;
匿名对象,声明的时候不给名字。例如:A();

特点是,生命周期只在当前一行,也就是说只活这么一行

应用场景:例如,需要调用一个类的成员函数,或者给类内部的成员函数传参
一般的做法,只能先创建一个类对象,然后再通过类对象进行成员函数的访问或者传参
但是,匿名对象不用创建具体的类对象,而是直接在当前行访问/传参,搞完就销毁。很方便

相关知识:

编译器传参优化
A a1 = 2;//类A的构造函数参数为int
这里的操作是:会调用拷贝构造产生一个临时变量,然后再将这个临时变量传给构造函数,实例化a1
但是实际上,当时构造+拷贝连续在一起时,就直接优化为构造

临时变量具有常性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二十5画生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值