class base
{
public:
base() : buffer(NULL) {}
private:
unsigned char * buffer;
};
class msgA : public base
{
public:
msgA()
{
//alocate memory for buffer size X
this->buffer = new (std::nothrow) unsigned char[A_MSG_SIZE]; // A_MSG_SIZE = 20
}
};
class msgA2 : public msgA
{
msgA2()
{
//alocate memory for buffer size X2
this->buffer = new (std::nothrow) unsigned char[A2_MSG_SIZE]; // A2_MSG_SIZE = 30
}
};
- msgA2 构造函数中是否存在内存泄漏?
- 在不引起任何问题的情况下设计它的最佳方法是什么?
我应该删除缓冲区然后在 msgA2 类中分配一个新缓冲区,因为之前调用了 msgA 构造函数
编辑:有一个析构函数 delete []
我在构造函数中添加了以下内容
if(this->buffer != NULL)
{
delete [] this->buffer ;
this->pMsgBuffer = NULL;
}