Ubuntu C++怎样使用智能指针
智能指针是C++11自动管理内存的特性,避免内存泄漏和野指针。Ubuntu需支持C++11,编译加`-std=c++11`,包含``。常用三类:`unique_ptr`独占所有权且轻量高效,`shared_ptr`引用计数自动释放适合多所有者,`weak_ptr`配合`shared_ptr`解决循环引用且不增加计数。合理使用可提升代码安全性。
C++里的智能指针,说白了就是一类专门替你管理动态内存的对象——你只管分配,它负责释放。这样一来,内存泄漏、野指针这些烦心事就能少一大半。在Ubuntu上要用好智能指针,关键在于把对应的头文件拉进来,然后用标准库里那几个现成的类就行。

常用的就那么三种,各有用武之地:
std::unique_ptr:独占所有权,一个资源只有一个主人。std::shared_ptr:共享所有权,多个人共同管理一份资源,引用计数归零时自动释放。std::weak_ptr:配合shared_ptr使用,专门解决循环引用的问题。
那在Ubuntu上具体怎么用呢?直接看代码。
首先,编译器得支持C++11或更高版本。用g++编译时加上-std=c++11(或者-std=c++17)就成:
g++ -std=c++11 -o my_program my_program.cpp
然后,在代码里这样写:
#include
#include // 智能指针的头文件
class MyClass {
public:
MyClass() { std::cout << "MyClass constructor called\n"; }
~MyClass() { std::cout << "MyClass destructor called\n"; }
void doSomething() { std::cout << "Doing something\n"; }
};
int main() {
// std::unique_ptr 示例
std::unique_ptr uniquePtr(new MyClass());
uniquePtr->doSomething();
// uniquePtr离开作用域时,MyClass实例自动释放
// std::shared_ptr 示例
std::shared_ptr sharedPtr1 = std::make_shared();
{
std::shared_ptr sharedPtr2 = sharedPtr1;
// sharedPtr1和sharedPtr2指向同一个实例
sharedPtr2->doSomething();
// sharedPtr2离开作用域,引用计数减1,但实例还在(sharedPtr1还活着)
}
sharedPtr1->doSomething();
// sharedPtr1离开作用域时,引用计数归零,实例自动释放
// std::weak_ptr 示例:避免了shared_ptr循环引用
std::weak_ptr weakPtr = sharedPtr1;
if (auto lockedPtr = weakPtr.lock()) { // 尝试提升为shared_ptr
lockedPtr->doSomething();
} else {
std::cout << "MyClass instance has been deleted\n";
}
// weakPtr不参与引用计数,所以不会影响实例的生命周期
return 0;
}
这段代码演示了三种智能指针的典型用法:unique_ptr确保资源唯一持有,shared_ptr通过引用计数实现共享,weak_ptr则作为观察者防止循环引用。只要记住一点:当智能指针离开作用域,它会自动搞定内存释放——这正是现代C++推荐的RAII思想。
IntelliJ IDEA 是 JetBrains 推出的专业集成开发环境,重点服务于 Java、Kotlin 与 JVM 项目开发。软件集成代码补全、静态检查、重构、调试、测试、版本控制及构建工具,并可借助插件扩展语言和框架支持。
JetBrains PyCharm 是面向 Python 开发者的集成开发环境,提供智能补全、代码检查、重构、调试、测试、版本控制及虚拟环境管理功能。Mac 版兼容 Intel 与 Apple 芯片,核心功能可免费使用。
JetBrains WebStorm 是面向 JavaScript、TypeScript 和现代 Web 技术的专业集成开发环境,可智能理解项目结构,提供代码补全、重构、错误检查、运行调试、测试及 Git 工具。
JetBrains IntelliJ IDEA 是以 Java、Kotlin 和 JVM 项目为核心的专业集成开发环境,提供智能补全、代码检查、安全重构、调试、测试、版本控制及构建工具集成。统一发行版的核心功能可免费用于商业和非商业项目,
PhpStorm 是 JetBrains 面向 PHP 与现代 Web 开发打造的专业集成开发环境,提供代码补全、静态检查、重构、调试、测试、数据库、版本控制及前端语言支持。Windows 用户可直接下载安装程序,
PyCharm 是 JetBrains 推出的 Python 集成开发环境,提供智能代码补全、错误检查、重构、调试、测试、Git、终端及 Jupyter Notebook 支持。统一版安装后可体验 30 天 Pro 功能,













