C++ – 在两个互有依赖关系的类中使用std::shared_ptr和std::weak_ptr进行内存管理
1 C++关于使用std::shared_ptr和std::weak_ptr在两个互有依赖关系的类中的设计 先说一下需求场景,比如我现在需要写一个图形学渲染器,一个渲染器中可能包含多个渲染场景Scene类,每个Scene类又包含了多个需要渲染的模型Actor类,现在我在每个Scene里面通过维护一个…
- C++
- 2022-05-31
C++ – 使用模板和智能指针构建一个双向链表工具类
1 C++使用模板和智能指针构建一个双向链表工具类 本文使用模板和智能指针构建一个双向链表工具模板类DoubleLinkedList<T>,在链表的节点Node内部使用T用于接受模板参数,当前节点的上一个节点使用std::shared_ptr,为防止节点与节点之间的std::shared…
- C++
- 2022-05-31
C++11 – std::shared_ptr初始化的几种方式
1 std::shared_ptr初始化的几种方式 这里只总结一下std::shared_ptr初始化的几种方式,不对std::shared_ptr的优缺点进行说明,初始化的方式比较多,平时码字的时候经常会搞迷糊,备忘。 1.1 构造函数初始化 std::shared_ptr<int> …
- C++
- 2020-08-12
C++11/std::shared_ptr – 循环引用问题
在C++11智能指针的使用过程中,一个很大的陷阱就是陷入了循环引用问题,这个问题类似于大型项目中两个头文件互相包含的问题,而在C++11中如果因为使用智能指针而引发了循环引用问题,那么其结果会导致智能指针无法释放,导致动态内存泄漏。 1 循环引用 下面是一个典型的循环引用示例: class B; c…
- C++
- 2020-04-02