智能指针测试代码实现
智能指针是C++中一个非常重要的概念,使用智能指针可以有效避免内存泄漏和空悬指针等问题。本文将介绍如何使用智能指针来实现一个简单的测试程序。
首先我们需要了解一下什么是智能指针。智能指针是一种 RAII(Resource Acquisition Is Initialization)技术,它可以在初始化时获取资源,在对象析构时自动释放资源,从而避免内存泄漏等问题。在 C++11 中,引入了三种不同的智能指针:unique_ptr、shared_ptr 和 weak_ptr。unique_ptr 是独占所有权的智能指针,即只能由一个指针拥有,通过移动语义实现转移所有权;shared_ptr 则是共享所有权的智能指针,可以由多个指针共同拥有;weak_ptr 则是弱引用智能指针,用于观测 shared_ptr 对象是否还存在。
下面是一个简单的示例代码,用于展示 unique_ptr 的使用方式:
#include <iostream>
#include <memory>
int main()
{
std::unique_ptr<int> p1(new int);
*p1 = 10;
std::cout << *p1 << std::endl;
// 移动所有权
std::unique_ptr<int>