智能指针代码: // 引用计数器类 用于存储指向同一对象的指针数 template<typename T> class Counter { private: // 数据成员 T* ptr; // 对象指针 int cnt; // 引用计数器 // 友元类声明 template<typename T> friend class SmartPtr; // 成员函数 // 构造函数 Counter(T* p) // p为指向动态分配...
在C++编程中,智能指针是一种非常重要的概念,它能自动管理动态内存,避免内存泄漏。本主题将深入探讨如何实现一个简单的智能指针,包括拷贝构造函数、赋值运算符以及引用和解引用操作符的重载。我们将使用C++标准库中的`std::shared_ptr`作为参考,并在Visual Studio 2019环境下进行编译。 我们需要了解智能指针的基本原理...
1. 移动语义(Move Semantics):支持移动构造函数和移动赋值操作符,允许对象的资源被“移动”而不是复制。这提高了程序的效率。2. 右值引用(Rvalue References):通过&&来声明右值引用,可以在函数中接受临时对象或返回临时对象。3. 智能指针(Smart Pointers):新增std::unique_ptr、std::shared_ptr和std::weak_ptr三...