7(内存管理)(上)(了解)

这块了解就行:

构造加拷贝构造优化成构造这种就不行,类型转换会生成临时对象,会合二为一吗不能,中间只有构造,那是个引用。下面是正常,上面是优化

这种构造完,再拷贝构造,不连续,不优化我们想减少拷贝构造就用引用

我如果直接用一个匿名对象

构造加拷贝构造优化成直接构造

1能给给A,得益于A有 单参数构造函数,走的隐式类型转换,1构造了一个临时对象再用临时对象拷贝构造,优化了直接构造,有可能有些编译器第一个也优化,

接下来看看传返回值,传值传参返回会产生一个临时对象

这是一个构造加一个拷贝构造

懒得接收,这调用这个函数会生成临时对象

Print调用之前 有个析构aa析构,调用Print的是临时对象

这生成临时对象,没生成aa

调用完Print之后发生析构,临时对象的生命周期是这一行,没有生成aa,aa析构应该在Print之前,把aa省掉了,直接用1构造临时对象。

临时对象匿名对象生命周期都在那一行,

我重载一个前置 ++看他优不优化

这是之前的没++用1构造了一个临时对象,临时对象PRint,现在看看有没有那么大胆,合了这两个

编译器优化还是很激进的,

优化后不仅省掉AA,临时对象省掉。构造,拷贝构造,拷贝构造和三位一。

这是构造,拷贝构造,构造,赋值,分离的过程,

这样三个对象一个没省,release下

相关推荐
码匠许师傅5 小时前
【C++ 面试真题】26. 聊聊 C++ 的智能指针
java·c++·面试
夜不会漫长10 小时前
C++入门(1)
开发语言·c++·算法
旖旎夜光11 小时前
LeetCode 852:山脉数组的峰顶索引(二分查找) —— 题解
数据结构·c++·算法·leetcode·二分查找
..Dauntless..11 小时前
【C++】继承——基类和派生类的配合
开发语言·c++·算法
程与留12 小时前
05_Qt 核心模块概览——Qt Core、Gui、Widgets、Quick 的职责划分
c++·qt
buhuizhiyuci12 小时前
【QT-百日筑基篇】修真世界摸爬滚打多年,终于黄天不负有心人,突破炼器中期——常用控件QWight的属性
开发语言·c++·qt·gui·图形化
冻柠檬飞冰走茶16 小时前
《数据结构实验指导-C++语言版》 求单链表list中的元素个数,即表长
开发语言·数据结构·c++·算法·list
_Narcissus_16 小时前
动态规划初探(含完整代码实现)
c语言·数据结构·c++·算法·动态规划·背包问题·最短路径
法哥201217 小时前
用 C++ 控制 CMW100,到底在干什么?
开发语言·c++
_Narcissus_18 小时前
枚举和模拟算法笔记
c语言·数据结构·c++·笔记·算法·模拟·枚举