指针在C/C++里面用得非常多。所以malloc和new是大家经常会见到的分配对象内存的方式。
然后清理指针,则是调用delete去清除前面所分配的指针,delete会调用该类的析构函数,最后再赋予null或者0,这样在重复利用该指针变量的时候可以判空,可以不用担心segment error。不重复使用,可以不用赋0,毕竟已经delete了。
C++中有智能指针,至于还有诸多指针类型,QSharedPointer(多用在指针数组),我就不讨论了,用得少,其实原理都是一样的,就看你代码够不够复杂了,当然了使用这些智能指针对代码的鲁棒性还是很有用的,更安全,不费心。
以后遇到了哪些地方可以替换过来使用更好的情况,再继续更新吧。
1.QPointer可以用在只要是继承自QObject的类,子类下,所以,几乎Qt自带的类大部分都可以。当然了,你自己创建的类,不继承QObject当然不行。
- QPointer
label = new QLabel; - label->setText("&Status:");
- //如果这里delete label,下面代码不会再执行,label变为NULL,可以用isNull()判断
- if (label)
- label->sho