首页 > 其他分享 >对象优化及右值引用优化(一)

对象优化及右值引用优化(一)

时间:2024-11-07 12:16:23浏览次数:4  
标签:调用 对象 Test 引用 及右值 临时 优化 构造函数

对象优化及右值引用优化

对象的函数调用时机

class Test {
public:
    Test(int val = 0) :val_(val) {
        cout << "Test::Test" << endl;
    }
    ~Test()
    {
        cout << "Test::~Test" << endl;
    }
    Test(const Test& test)
    {
        cout << "Test::Test(const Test& test)" << endl;
        val_ = test.val_;
    }

    Test& operator=(const Test& test)
    {
         cout << "Test::operator=(const Test& test)" << endl;
        if (this == &test)
            return *this;
        val_ = test.val_;
        return *this;
    }
private:
    int val_;
};

构造函数的调用
 Test t1;
 Test t4 = Test(1); // Test(1)显示生成临时对象,生存周期:当前所在语句除了语句就析构。使用临时对象
  • Test t4 = Test(1) 被优化成Test t4(1)
  • Test(1)会产生一个临时对象,当出该语句的时候就析构该对象
拷贝构造函数的调用
 Test t2(t1);
 Test t3 = t1;
  • 产生一个新对象的时候使用对象对其初始化,调用拷贝构造
赋值函数调用
 t2 = t4;
 t1 = Test(1); // 显式临时对象的生成
 t2 = (Test)1; // 显式临时对象的生成
 t3 = 30;      // 隐式临时对象的生成
  • 对已经存在的对象进行赋值的时候,调用赋值函数
引用临时对象
const Test& ref = Test(20);

//Test* p = &Test(10); // &后面接临时变量时不能取地址
  • 相当于为临时对象起了个别名,对象的生存周期延长
  • 临时对象不能使用&取地址
局部静态对象的构造函数调用时机
  • 最先在数据区为其开辟内存空间
  • 只要有在运行到该对象的构造函数调用点,才会调用该对象构造函数
  • 程序结束时,才调用该对象析构函数

RVO优化

G++ 编译器,在函数返回对象时候会将创建的临时变量优化掉,导致不会调用对应的拷贝构造函数。g++编译的时候可以使用下面命令关闭掉RVO优化,

-fno-elide-constructors

标签:调用,对象,Test,引用,及右值,临时,优化,构造函数
From: https://blog.csdn.net/weixin_43459437/article/details/143591112

相关文章

  • oracle11g 常用基本参数优化设置
    1、进程及会话数进程默认150,会话默认是247;查看进程及会话数showparameterprocess;showparametersessions;2、修改进程及会话数altersystemsetprocesses=1250scope=spfile;altersystemsetsessions=1380scope=spfile;SQL>altersystemsetprocesses=1250......
  • Java面试系列-MySQL面试题20道,InnoDB,索引类型,事务隔离级别,锁机制,MVCC,主从复制,慢查询,分
    文章目录1.MySQL中的InnoDB和MyISAM存储引擎有什么区别?2.MySQL中的索引类型有哪些?3.MySQL中的索引是如何工作的?4.MySQL中的事务隔离级别有哪些?5.MySQL中的锁机制有哪些?6.MySQL中的MVCC(多版本并发控制)是如何工作的?7.MySQL中的主从复制是如何工作的?8.MySQL中的分区......
  • Go-性能优化、优化分析、调优实战pprof
    使用官方自带benchmark进行基准性能测试第一个是函数名-核数第二个是执行次数第三个是一次执行时间第四个是一次执行的多大的内存第五个是一次执行申请几次内存slice用的时候在make()初始化切片时提供容量信息data:=make([]int,0)data:=make([]int,0,size)//goodpre......
  • 剑侠情缘2Online单机安装教程+汉化第六版任务优化+GM
    天给大家带来一款单机游戏的架设:剑侠情缘2Online只适用于单机娱乐,此教程是本人亲测所写,踩坑无数,如果你是小白跟着教程走也是可以搭建    亲测视频演示https://githubs.xyz/show/303.mp4 游戏安装步骤此游戏架设需要安装虚拟机,没有虚拟机的请先安装虚拟机,请见:ht......
  • 优化生产流程:Ftrans机台设备数据采集方案智能解决!
    机台设备数据采集在工业生产与制造、能源管理、交通运输、建筑物管理以及医疗健康等多个领域都有着广泛的应用场景。机台设备数据采集可以提高生产效率与质量控制、降低运营成本与维护成本、提升决策效率与准确性等。企业通常采取FTP脚本进⾏统一机台设备数据采集,虽然可以满⾜基础......
  • 基于ACO蚁群优化的VRPSD问题求解matlab仿真,输出规划路径结果和满载率
    1.程序功能描述基于ACO蚁群优化的VRPSD问题求解matlab仿真,输出ACO优化的收敛曲线,规划路径结果和每一条路径的满载率。2.测试软件版本以及运行结果展示MATLAB2022a版本运行 3.核心程序%搜索fori=1:Iterationiis_best=0;forj=1:Npop......
  • 5个维度对Kubernetes集群优化
    5个维度对Kubernetes集群优化一、节点配额和内核参数调整对于公有云上的Kubernetes集群,规模大了之后很容器碰到配额问题,需要提前在云平台上增大配额。这些需要增大的配额包括:虚拟机个数vCPU个数内网IP地址个数公网IP地址个数安全组条数路由表条数持久化存储大小......
  • PHP常见性能瓶颈分析与优化策略
    PHP常见性能瓶颈分析与优化策略在现代网站和应用开发中,PHP作为一种广泛使用的服务器端脚本语言,其性能优化至关重要。尽管PHP的易用性和强大的功能受到开发者青睐,但在高并发和大流量的环境下,性能瓶颈常常会影响网站的响应速度和用户体验。本文将分析PHP常见的性能瓶颈,并探讨相应的......
  • 网站关键词挖掘与优化:解锁流量潜力的关键
    在当今数字化时代,搜索引擎已成为人们获取信息、产品和服务的主要途径。对于网站运营者来说,如何有效地挖掘并优化关键词,以提升网站在搜索引擎结果页(SERP)中的排名,进而吸引更多目标流量,是至关重要的一环。本文将深入探讨网站关键词挖掘与优化的策略,帮助网站管理者解锁流量潜力,实......
  • DP问题空间的优化
    1.消去作为“层数”的那一维如果状态转移时需要用到这一层和上一层的信息,此时往往需要改变枚举顺序例如:\(01\)背包#include<iostream>#include<algorithm>usingnamespacestd;constintN=1010;intw[N],v[N];intf[2][N],n,m;intmain(){cin>>n>......