我正在将消息类的当前实现从以下位置更改:
class Message
{
public:
Message(uint8* buffer, uint8 length) : m_contents(buffer), m_length(length) { }
uint8 getLength() const {return m_length; }
const uint8* getData() const { return m_contents; }
protected:
uint8* m_contents;
uint8 m_length;
};
在构造函数中只取长度,在构造函数中动态分配,在析构函数中删除。
我认为它应该看起来像:
Message(uint8 length) : m_length(length)
{
m_contents = new uint8[length];
}
~Message()
{
delete [] m_contents;
m_contents = NULL;
}
附加信息:消息对象将被传递给将其发送出去的串行端口对象。它还将被子类化为多个 CustomMessage 类。
我的问题是:在这个简单的例子中,是否有任何理由使用某种类型的智能指针?一个例子会很有帮助。谢谢!