C++装饰者模式内存泄漏修复

本版本 (V1.1) 针对 Head First 设计模式第三章装饰者模式示例代码中的内存泄漏问题进行修复。

问题描述

原代码在使用装饰器对象时,没有释放动态分配的内存,导致内存泄漏。

解决方法

在析构函数中添加释放动态内存的代码。具体实现方式取决于动态内存分配的方式,例如:

  • 使用 new 分配的内存,使用 delete 释放:
~Decorator() {
  delete wrappedObject;
}
  • 使用 malloc() 分配的内存,使用 free() 释放:
~Decorator() {
  free(wrappedObject);
}

注意事项

  • 确保在所有可能的代码路径中都释放了动态分配的内存。
  • 避免重复释放内存,导致程序崩溃。

通过以上修改,可以有效解决装饰者模式示例代码中的内存泄漏问题,提高程序的稳定性和可靠性。

1-tar 文件大小:140KB