网站链接: element-ui dtcms
当前位置: 首页 > 技术博文  > 技术博文

c++高级知识总结------01

2021/6/24 20:04:05 人评论

文章目录一:对象应用优化二:添加带右值引用参数的拷贝构造和赋值函数三:通过自定义vector和string来理解move和forward一:对象应用优化 1.1、c编译器对于对象的构造的优化:用临时对象生成新对象的时候,临时…

文章目录

  • 一:对象应用优化
  • 二:添加带右值引用参数的拷贝构造和赋值函数
  • 三:通过自定义vector和string来理解move和forward

一:对象应用优化

1.1、c++编译器对于对象的构造的优化:用临时对象生成新对象的时候,临时对象就不产生了,直接构造新对象就可以了
例:

Test t1 = Test(20); //与Test t1(20)没有区别

1.2、示例:

Test t1 = Test(20);
t1 = Test(30);//该语句会调用t1.operator=(const Test& t)

//显式转换,会找构造函数中是否有带整型的构造函数int->Test(int)
t1 = (Test)30;
//隐式转换,会找构造函数中是否有带整型的构造函数int->Test(int)
t1 = 30;

Test *p = &Test(20);//p指向的是一个已经析构的临时对象了,所以不安全
const Test &ref = Test(20);//引用相当于给产生的临时对象赋予了别名,ok

1.3、各个对象构造的顺序
在这里插入图片描述
1.4、可参考另外一篇优秀博客
C++对象优化

①不能返回局部的或者临时对象的指针或引用
②函数参数传递过程中,对象优先按引用传递,不要按值传递
③函数返回对象的时候,应该优先返回一个临时对象,而不要返回一个定义过的对象
④接收返回值是对象的函数调用的时候,优先按初始化的方式接收,不要按赋值的方式接收

二:添加带右值引用参数的拷贝构造和赋值函数

从自定义string类型理解右值引用

三:通过自定义vector和string来理解move和forward

通过自定义vector和string来理解move和forward

C++11 - 右值引用

相关资讯

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?