QScopedPointer用法示例
QScopedPointer是Qt中的一个智能指针类,用于管理动态分配的对象的生命周期。它通过将一个对象封装在一个QScopedPointer实例中,当QScopedPointer实例超出范围时,会自动释放所管理的对象。
以下是QScopedPointer的用法示例:
#include <QScopedPointer>
#include <QDebug>
class MyClass {
public:
MyClass() {
qDebug() << "MyClass constructor";
}
~MyClass() {
qDebug() << "MyClass destructor";
}
void doSomething() {
qDebug() << "Doing something";
}
};
int main() {
QScopedPointer<MyClass> ptr(new MyClass);
if (ptr) {
ptr->doSomething();
}
return 0;
}
在上面的示例中,我们创建了一个QScopedPointer实例ptr,并将一个动态分配的MyClass对象传递给它的构造函数。当ptr超出范围时,它的析构函数会被调用,从而自动释放所管理的MyClass对象。
在main函数中,我们通过箭头操作符(->)调用了MyClass对象的成员函数doSomething()。由于QScopedPointer重载了箭头操作符,我们可以像使用原始指针一样使用QScopedPointer。
输出结果为:
MyClass constructor
Doing something
MyClass destructor
可以看到,当QScopedPointer超出范围时,它的析构函数被调用,从而自动释放所管理的MyClass对象
原文地址: http://www.cveoy.top/t/topic/iXbJ 著作权归作者所有。请勿转载和采集!