How could I check whether a pointer's content is deleted? If I use QPointer like this:
myClass::myClass(myStruct* p){
_p = p;//_p is a QPointer<myStruct>
}
myClass::function(){
if(_p) {_p->function();}
}
then I have
myStruct* p = new myStruct();
myClass A(p);
delete p;
A.function();
will the last A.function() cuase the _p->function() be called and therefore cause access violation? when I delete p, what will happen to _p?
If
myStructis aQObjectsubclass, then your code should work, as much as can be said from shown snippets. TheQObjectdestructor will clear everyQPointerpointing to the destructed instance. If it isn't aQObjectsubclass, then you should get compile/link error.Quote from the docs: