检查指针在析构函数中不为空

Check pointer is not null in destructor

我有 class 移动构造函数。移动后,指针变为空。在调用 delete 之前,我是否必须在析构函数中检查 not_null?

class A {
    int *data;
public:
    A(size_t size) : data(new int[size]) {}

    A(A &&rhs) : data(rhs.data) {
        rhs.data = nullptr;
    }

    ~A() {
        if (data) {
            delete [] data;
        }
        //or
        delete [] data;
    }
}

不,deletedelete[] 都是 nullptr 的明确定义 - 它们什么都不做。