收藏 (0) +1 (0) +1 (0) +1
收藏成功查看收藏>>

正在阅读:高质量C++编程点滴(一)高质量C++编程点滴(一)

2004-07-05 09:55 出处:CSDN 作者:fireseed 责任编辑:linjixiong

  二、你需要写一个类来为你管理一个指针,这个类将封装对指针的申请内存、释放和其它一些基本操作。

  不合理:


class A

{

public:

       A( void ) {}

       ~A( void ) { delete []m_pPtr; }

       void Create( int n ){ m_pPtr = new int[n]; }

private:

       int *m_pPtr;

};

 

  合理:


class A

{

public:

       A( void ) : m_pPtr(0){}

       ~A( void ) { Clear(); }

       bool Create( int n ){ if ( m_pPtr ) return false; m_pPtr = new int[n]; return ture; }

       void Clear( void ) { delete []m_pPtr; m_pPtr = 0; }

private:

       int *m_pPtr;

};

 

  解析:

  不合理的代码就在于当你重复调用Create的时候就会造成内存泄露,解决的办法就是在new之前判断一下指针是否为0。要能够有效的执行这个判断,则必须在构造的时候对指针进行初始化,并为这个类添加一个Clear函数来释放内存。


察看评论详细内容 我要发表评论
作者笔名 简短内容 发表时间
:

键盘也能翻页,试试“← →”键

关注我们

最新资讯离线随时看 聊天吐槽赢奖品
手机访问回到顶部