随笔分类 - C++重点 / C++11新标准
摘要:# 10.智能指针出现循环引用怎么解决? 弱指针用于专门解决shared_ptr循环引用的问题,weak_ptr不会修改引用计数,即其存在与否并不影响对象的引用计数器。循环引用就是:两个对象互相使用一个shared_ptr成员变量指向对方。弱引用并不对对象的内存进行管理,在功能上类似于普通指针,然而
阅读全文
摘要:8.智能指针的循环引用 如果在一个类中编写了一个函数,通过这个得到管理当前对象的共享智能指针,我们可能会写出如下代码: #include <iostream> #include <memory> using namespace std; struct Test { shared_ptr<Test>
阅读全文
摘要:# 9.手写实现智能指针类需要实现哪些函数? ==1.智能指针是一个数据类型,一般用模板实现,模拟指针行为的同时还提供自动垃圾回收机制。它会自动记录SmartPointer对象的引用计数,一旦T类型对象的引用计数为0,就释放该对象。== 除了指针对象外,我们还需要一个引用计数的指针设定对象的值,并将
阅读全文
摘要:# 7.说说你了解的auto_ptr作用 1.auto_ptr的出现,主要是为了解决“有异常抛出时发生内存泄漏”的问题;抛出异常,将导致指针p所指向的空间得不到释放而导致内存泄漏; 2.auto_ptr构造时取得某个对象的控制权,在析构时释放该对象。我们实际上是创建一个auto_ptr\类型的局部对
阅读全文
摘要:# 6.智能指针的作用 1.C++11中引入了智能指针的概念,方便管理堆内存。使用普通指针,容易造成堆内存泄露(忘记释放),二次释放,程序发生异常时内存泄露等问题等,使用智能指针能更好的管理堆内存。 2.智能指针在C++11版本之后提供,包含在头文件\中,shared_ptr、unique_ptr、
阅读全文
摘要:# 5.说一说你了解的关于lambda函数的全部知识 1.利用lambda表达式可以编写内嵌的匿名函数,用以替换独立函数或者函数对象; 2.每当你定义一个lambda表达式后,编译器会自动生成一个匿名类(这个类当然重载了()运算符),我们称为闭包类型(closure type)。那么在运行时,这个l
阅读全文
摘要:# 4.智能指针的原理、常用的智能指针及实现 ## 1.auto_ptr 当你在读这篇文章的时候,应该都有这样一个疑问?那就是为什么要使用[智能指针](https://so.csdn.net/so/search?q=智能指针&spm=1001.2101.3001.7020)。 我们先看这样一个示例:
阅读全文
摘要:3.C++中NULL和nullptr区别 NULL 是宏,本质是整数 0;nullptr 是 C++11 专用空指针,有独立类型,不会引起歧义。 1. 本质不同 NULL:是宏,C++ 里定义为 0(整数) #define NULL 0 nullptr:是关键字,类型是 std::nullptr_t
阅读全文
摘要:2.auto、decltype和decltype(auto)的用法 这三个都是 C++11 及以后的类型推导关键字,我给你用最清晰、面试能直接说的版本讲一遍。 2.1 auto 作用:从表达式的值推导变量类型 推导规则: 会自动忽略顶层 const、引用 会发生类型退化(数组→指针,函数→指针) i
阅读全文
摘要:# 1.C++ 11有哪些新特性? - long long类型 - 列表初始化 - nullptr常量(替代 NULL) - constexpr变量[[68.C++中的const - CodeMagicianT - 博客园 (cnblogs.com)](https://www.cnblogs.com
阅读全文

浙公网安备 33010602011771号