导读

  1. 尽可能使用 string 而不是 char*-based 字符串
    1. 如果发生 exception,string objects 不会出现内存泄漏memory leak)的情况
  2. 当你分配了内存但没有释放它,会出现内存泄漏.
    1. 相较于传统 C 的内存泄漏,C++ 泄露的不只是内存,因为 C++ 在创建对象时还要调用 constructor,其中可能存在资源分配
      1. class Widget { ... }; // some class...
      2. Widget *pw = new Widget;
      3. ... // 假设 pw 一直没有被 delete

      上面的代码会泄露资源,比如 file descriptors, semaphones… 这些资源只有在 Widget 对象被销毁(调用 destructor)时才会被释放