21xrx.com
2024-11-05 19:37:40 Tuesday
登录
文章检索 我的文章 写文章
C++ 为什么不推荐使用 new?
2023-07-05 03:12:41 深夜i     --     --
C++ new操作符 不推荐使用

C++ 是一门非常强大的编程语言,但是在使用时也需要考虑编程实践和安全性。其中,一些编码实践在很早的时候就已经被推荐使用,比如在许多情况下建议不要使用 new 运算符。

使用 new 时容易出现内存泄漏。如果你使用 new 来创建一个对象,但是却忘记了使用 delete 来释放它,就会导致内存泄漏。在程序运行中,这些未释放的内存会占用系统资源,导致程序性能下降,并可能导致崩溃或其他奇怪的行为。

另外,new 的另一个问题是它不总是能保证分配的内存是连续的,这可能会导致内存碎片化。这意味着程序的性能可能会受到影响,因为内存分配请求可能无法满足,尤其是在内存使用频繁的场景下。更重要的是,这可能会导致程序运行时出现意外的错误或崩溃。

为了解决这些问题,C++ 引入了一种叫做 RAII(Resource Acquisition Is Initialization,资源获取即初始化)的编程技术。RAII 可以确保程序在使用时分配和释放资源的方式正确、稳定、可靠。RAII 的基本思路是在对象的构造函数中初始化成员变量和分配资源,在析构函数中释放资源。这种方法可以防止资源泄漏,并且更加灵活和安全。

不推荐使用 new 并不意味着完全不用,它仍然是一种有用的工具。但更多的时候,应该优先考虑使用 STL 中的 RAII 包装器(如 std::unique_ptr ,std::shared_ptr 等)或者使用容器类来管理内存。这些容器类在内部使用 new 运算符管理内存,而且还能提供额外的安全保障。

总之,虽然 new 运算符在某些情况下是非常有用的,但在大多数情况下都不推荐使用。RAII 技术提供了更灵活、更安全的方法来管理资源,帮助我们写出更稳定和高效的代码。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复