摘要: 以下文字摘抄自C++程序设计语言中文版P326 考虑下面的类定义: 1 class X { 2 public: 3 X( int s ) { p = new int[s]; init(); } 4 ~X() { delete[] p; } 5 6 private: 7 int* p; 8 void init(); 9 10 } 这个类定义存在的问题是:它有可能导致“存储流失”。如果init()抛出异常,那么申请到的存储就不会被释放,因为有关对象并没有构造完成,对它不会调用析构函数。一种安全的变形是1 class Z {2 p... 阅读全文
posted @ 2012-04-22 20:40 ziyoudefeng 阅读(309) 评论(2) 推荐(0) 编辑