我被告知,如果我有多个指针指向同一个对象,我不能正常地删除它(使用delete关键字)。相反,我需要将指针设置为NULL或0。
假设我有:
ClassA* object = new ClassA();
ClassA* pointer1 = object;
ClassA* pointer2 = object;
那么,如果要 delete
pointer1
和 pointer2
,我需要执行以下操作吗?
pointer1 = 0;
pointer2 = 0:
一旦我将其设置为NULL,我是否仍需要使用关键字delete
?还是仅将其设置为0就足够了?
pointer1
或pointer2
中的一个,然后将两个指针都设置为0,最好使用std::shared_ptr
。 - Mr.Anubis