随着现代C++标准引入智能指针等机制,一定程度上缓解了手动内存管理的问题,但理解基本指针操作仍然是学习C+...
常见问题:智能指针、多态、虚函数、stl原理。 智能指针实现原理 智能指针,里面的计数器何时会改变 智能指针和管理的对象分别在哪个区(智能指针本身在栈区,托管的资源在堆区,利用了栈对象超出生命周期后自动析构的特征,所以无需手动delete释放资源。 面向对象的特性:多态原理 介绍一下虚函数,虚函数怎么实现的 多态和...
智能指针原理:引用计数、RAII(资源获取即初始化)思想 智能指针使用:shared_ptr、weak_ptr、unique_ptr等 一些关键字的作用:static、const、volatile、extern 四种类型转换:static_cast, dynamic_cast, const_cast,reinterpret_cast STL部分容器的实现原理,如 vector、deque、map、hashmap 模板特化、偏特化,萃取 traits ...
智能指针原理:引用计数、RAII(资源获取即初始化)思想 智能指针使用:shared_ptr、weak_ptr、unique_ptr等 编译链接机制、内存布局(memory layout)、对象模型 C++11 部分新特性,比如右值引用、完美转发等 上面的基础知识我都整理好了,看下面: 书籍推荐 《C++ Primer中文版》本书面向 C++ 语言的初学者,是一本很友好...
std::shared_ptr是C++标准库提供的一种智能指针,它可以用来管理对象的生命周期,并提供自动的引用计数功能。当多个std::shared_ptr对象共享同一个对象时,它们会共享对象的引用计数。当最后一个std::shared_ptr被销毁时,对象会被自动删除。 std::shared_ptr<A> createA() {return std::make_shared<A>();}int...
智能指针,如std::unique_ptr、std::shared_ptr和std::weak_ptr,管理动态分配的内存,帮助避免内存泄漏和其他资源管理问题。通过自动释放所拥有的对象,智能指针使资源管理变得更加简单和安全。 #include <memory>std::unique_ptr<int> ptr(new int(10));std::cout << *ptr; // 使用*运算符访问智能指针指向的...
另一个智能指针是std::shared_ptr,它允许多个智能指针指向同一个对象。当最后一个std::shared_ptr离开作用域时,它会自动释放所管理的内存。 代码如下: 代码语言:c++ 复制 #include <memory> void func() { std::shared_ptr<int> ptr1(new int); ...
C++ 进阶:函数模板、类模板,C++ 中对于异常的处理,对于继承和多态底层的理解,对于 virtual 底层的理解等,理解清楚智能指针的本质是,内存的申请与释放全部交给了对象管理,以避免人为疏忽,造成内存泄露。 推荐书籍: <Effective C++> <more Effectice C++> <深度探索 C++ 对象模型> <C++ 沉思录> STL 源码:对于STL...
C/C++ 智能指针和普通指针转化的坑 智能指针和普通指针转化