C++的一些知识

一. 语法

  1. move怎么用
    https://blog.csdn.net/zhangmiaoping23/article/details/126051520
    这个文章讲的很好,其中有一些疑惑的点
    (1) 左值引用不能接右值
cpp 复制代码
class T1{
    int a;
};
int main(){
    T1 t1 = T1();
    T1 && t1_temp = T1();  //T1()是一个临时对象,是右值,可以用右值引用来指向它
    T1 & t1_temp = T1();   //不能用左值引用指向一个临时对象
}

(2) 右值对象的特点和示例

  1. 右值通常用于赋值、传递给函数、初始化等操作。
  2. 右值可以是临时对象、字面量、表达式的结果、函数返回的右值引用、临时分配的内存等。
  3. 右值是临时产生的,没有持久的存储位置。
  4. 右值只能出现在赋值操作符的右边,不能被取址。
cpp 复制代码
int a = 5 + 3;  // 5 + 3是右值,临时产生的表达式
int&& rref = 10;  // 10是右值,可以通过右值引用绑定
int* ptr = new int(5);  // new int(5)返回的是右值,临时分配的内存
相关推荐
沐知全栈开发1 天前
Scala 数组
开发语言
jiayong231 天前
Word 使用指南:标题间距调整与核心功能详解
开发语言·c#·word
游戏23人生1 天前
c++ 语言教程——17面向对象设计模式(六)
开发语言·c++·设计模式
superman超哥1 天前
仓颉内存管理内功:栈与堆的分配策略深度解析
c语言·开发语言·c++·python·仓颉
Evand J1 天前
【MATLAB例程】GNSS高精度定位滤波的例程分享,使用维纳滤波+多频段加权融合,抗多径、延迟等带来的误差
开发语言·matlab·gnss·北斗·滤波·维纳滤波·bds
极客先躯1 天前
java的线上诊断工具大全
java·大数据·开发语言·内存管理·生产·诊断工具
MyBFuture1 天前
C# 二进制数据读写与BufferStream实战
开发语言·c#·visual studio
川石课堂软件测试1 天前
软件测试的白盒测试(二)之单元测试环境
开发语言·数据库·redis·功能测试·缓存·单元测试·log4j
snow@li1 天前
前端:拖动悬浮小窗
开发语言·前端·javascript
ALex_zry1 天前
C++中的“虚“机制解析:虚函数、纯虚函数与虚基类
c++