
C++
文章平均质量分 70
Aaron_1997
这个作者很懒,什么都没留下…
展开
-
C++——左值与右值、右值引用、移动语义与完美转发
C++——左值与右值、右值引用、移动语义与完美转发 在C++或者C语言中,一个表达式(可以是字面量、变量、对象、函数的返回值等)根据其使用场景不同,分为左值表达式和右值表达式。 一、左值和右值的定义 左值的英文为locator value,简写为lvalue,可意为存储在内存中、有明确存储地址(可寻址)的数据 右值的英文为read value,简写为rvalue,指的是那些可以提供数据值的数据(不一定可寻址,例如存储与寄存器中的数据) 二、如何判断一个表达式是左值还是右值(大多数场景) 可位原创 2022-03-22 16:01:47 · 2073 阅读 · 0 评论 -
C++ 模板与泛型知识点
C++ 模板与泛型知识点 类模板中,typename和class的区别: 1)在类模板声明中,template<class T> class Student;和template<typename T> class Student;没有区别 2)什么场景中只能使用typename而不能使用class 在涉及到一个在template中的嵌套依赖类型名的任何时候,需要把单词typename放在紧挨着它的前面 什么叫嵌套依赖类型名? 下面是一个实例: template<原创 2022-03-22 16:00:06 · 842 阅读 · 0 评论 -
C++程序的内存模型——内存四区相关知识点整理
C++程序在执行时,将内存划分为四个区域: 一、代码区 存放程序编译后的二进制代码,是共享的、只读的,不可寻址,由操作系统管理 二、全局区 存放全局变量、静态变量(static修饰的)、常量(包括字符串常量和const修饰的全局变量(又叫全局常量)) 三、栈区 存放函数参数(形参)和局部变量,由编译器自动分配释放,因此要注意不能把局部变量的地址作为函数的返回值,因为当函数运行完成之后,编译器会释放局部变量的内存,此时再访问这块内存就会导致非法操作(但第一次访问可能成功,第二次及之后再访问必失败)原创 2021-02-02 16:58:28 · 376 阅读 · 0 评论 -
C++模板
初步学习了C++的模板用法(泛型编程的基础) #include <iostream> #include <ctime> #include <string> #include <vector> #include <cstdlib> #include <stdexcept> #include <fstream> #include <csignal> #include <unistd.h> #inclu原创 2020-10-08 10:42:08 · 136 阅读 · 0 评论