C++面试技术相关问题
文章平均质量分 65
总结面试中遇到的C++技术问题,复盘巩固
LAmyCat
这个作者很懒,什么都没留下…
展开
-
C++ 新特新之移动构造函数
使用默认拷贝构造函数时,如果类对象中有指针成员,会因为新对象的指针指向的地址与被拷贝对象的指针指向的地址相同,造成指针被delete两次的错误;移动构造函数首先将传递参数的内存地址空间接管,源对象的数据成员分配给默认值(指针设置为nullptr),并且在原地址上进行新对象的构造,最后调用原对象的的析构函数,这样做既不会产生额外的拷贝开销,也不会给新对象分配内存空间。将对象的状态或者所有权从一个对象转移到另一个对象,只是转移,没有内存的搬迁或者内存拷贝。类的对象需要拷贝时,拷贝构造函数将会被调用。原创 2023-08-23 21:00:00 · 33 阅读 · 0 评论 -
C++ 新特性之左值右值
将亡值是指C++11新增的和右值引用相关的表达式,通常指将要被移动的对象、T&&函数的返回值、std::move函数的返回值、转换为T&&类型转换函数的返回值,将亡值可以理解为即将要销毁的值,通过“盗取”其它变量内存空间方式获取的值,在确保其它变量不再被使用或者即将被销毁时,可以避免内存空间的释放和分配,延长变量值的生命周期,常用来完成移动构造或者移动赋值的特殊任务。左值引用就是对左值进行引用的类型,右值引用就是对右值进行引用的类型;可以位于等号左边的值叫做左值,不能位于等号左边的值叫做右值;原创 2023-08-22 21:00:00 · 45 阅读 · 1 评论 -
C++ 新特性之类型推导
auto和decltype关键字原创 2023-08-19 21:00:00 · 46 阅读 · 0 评论 -
C++ 新特性之智能指针
智能指针是在头文件中的std命名空间中定义的。智能指针的设计原则是在内存和性能上尽可能高效。原创 2023-08-17 21:00:00 · 33 阅读 · 0 评论 -
C++ 栈和堆
Stack(栈):由编译器在需要时自动分配,不需要时自动清除的变量存储区。通常存放局部变量、函数参数值、返回变量等。Heap(堆):容量大于栈,程序中动态分配的内存,由程序员申请和释放。如果程序员没有释放掉,资源将由操作系统在程序结束后自动回收。存放未初始化的全局和静态变量。(默认设为0)Data Segment (数据区):存放已初始化的全局和静态变量, 常量数据(如字符串常量)。Code Segment(代码区):也称Text Segment,存放可执行程序的机器码。原创 2023-08-16 21:00:00 · 25 阅读 · 0 评论