⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

C++ 智能指针

unique_ptr/shared_ptr/weak_ptr · 难度:高级 · +20XP

智能指针 — 告别 new/delete

C++11 智能指针自动管理内存,离开作用域自动释放。零额外开销。

unique_ptr — 独占所有权

auto p = make_unique(42);  // 独占,不可复制
cout << *p << endl;
auto p2 = move(p);              // 所有权转移
// p 现在为空

shared_ptr — 共享所有权

auto sp1 = make_shared(100);
auto sp2 = sp1;  // 引用计数 +1
cout << sp1.use_count();  // 2
// 最后一个 shared_ptr 销毁时释放内存

weak_ptr — 打破循环引用

weak_ptr wp = sp1;  // 不增加引用计数
if (auto sp = wp.lock()) { /* 使用 */ }

学习与实践建议

  1. 先理解本节的核心概念和语法规则
  2. 在右边编辑器中修改示例代码,观察运行结果变化
  3. 尝试用学到的知识完成一个小练习——比如自己写一个工具函数或小程序
  4. 遇到问题时,查阅官方文档是最快的学习途径

编程是门实践技能,动手写代码比看教程重要得多。坚持每天练习,你会很快看到进步!

Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 105 篇
0 完成
🔥 0