如果我有两个动态数组作为私有(private)数据成员:
std::string* first_array;
std::string* second_array;
我知道我可以在析构函数中像这样简单地删除
myClass::~myClass()
{
delete[] first_array;
delete[] second_array;
}
我担心的是,并非所有时间我都在两个数组中都有数据,所以这样的事情被认为是最佳实践吗?
myClass::~myClass()
{
if(first_array)
delete[] first_array;
if(second_array)
delete[] second_array;
}
我都试过了,都有效,但不确定哪一个在性能方面更好。
最佳答案
C++ 标准指定对空指针值调用 delete
将导致 NOP(无操作)。它是完全有效的、可接受的并且通常是首选的。
关于c++ - 在析构函数中多次删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31257761/