现代 C++ 开发指南:特性、应用与互操作性
1. 现代 C++ 简介
在过去十年里,若你在微软平台开启新项目,很可能是在微软 .NET 托管代码环境中开发。若期间较少使用 C++,或许会担忧失去 .NET 带来的生产力提升。但实际上,C++ 并非停滞不前,它借鉴了许多托管环境的流行特性。接下来,我们将回顾 C++ 11 标准中的一些实用新增特性。
需要注意的是,Visual C++ 2012 尚未支持 C++ 11 的所有特性。若想了解 C++ 11 特性以及 Visual Studio 2012 的支持情况,可访问 此链接 。随着 Visual Studio 更新发布,更多功能将逐步添加。
2. 智能指针
2.1 管理与原生开发的内存差异
管理环境和原生开发在内存分配和回收方式上存在根本差异。在管理环境中,开发者为新对象分配内存,但通常将回收内存的工作交给运行时的垃圾回收器。而在原生环境中,开发者负责清理不再使用的内存。尽管正确控制应用资源能带来性能提升,但内存管理也是常见的 bug 来源,尤其是内存泄漏。
手动内存管理的一大挑战是跟踪哪个组件负责管理资源的生命周期。若组件承担了不应承担的责任,可能会删除其他组件仍在使用的资源;反之,若组件未履行清理责任,则可能导致内存泄漏。
2.2 智能指针的引入
C++ 11 引入了几种增强的指针类型,统称为智能指针,可缓解上述挑战。在之前的
超级会员免费看
订阅专栏 解锁全文
1333

被折叠的 条评论
为什么被折叠?



