我有一个带有缓冲区类型向量的模板类Array。
template <typename T>
class Array
{
protected:
std::vector<T> buffer;
......
}
我想为此缓冲区实现析构函数~Array();
。有关如何执行操作的任何想法?
答案 0 :(得分:1)
默认的析构函数已经释放了向量的内存,您无需在此处定义一个。
如果要显式释放向量的内存,请在需要时尝试使用交换技术:
std::vector<T>().swap(buffer);
答案 1 :(得分:1)
有什么想法吗?
这完全取决于您设计的类及其析构函数的设计。
最好的选择是在没有需要用户声明的析构函数的情况下,而是隐式生成的函数。换句话说,请尽可能遵循rule of 0。
我要删除分配给缓冲区的内存
所有成员变量都会自动销毁。向量的析构函数会释放其内部缓冲区。此处无需自定义析构函数。