秘鲁网站后缀,谷歌seo引擎优化,wordpress设置描述词,chatgpt 网址QT中有一些很精妙、便捷的设计#xff0c;在了解这些数据的同时#xff0c;我们可以学到如何更好的设计代码。本贴持续更新中#xff0c;欢迎关注和收藏 一 QScopedPointer主要特点#xff1a;示例代码 二 Q_DISABLE_COPY 一 QScopedPointer
QScopedPointer 是 Qt 中的一种… QT中有一些很精妙、便捷的设计在了解这些数据的同时我们可以学到如何更好的设计代码。本贴持续更新中欢迎关注和收藏 一 QScopedPointer主要特点示例代码 二 Q_DISABLE_COPY 一 QScopedPointer
QScopedPointer 是 Qt 中的一种智能指针它的主要作用是管理动态分配的内存确保在指针离开作用域时自动释放内存从而避免内存泄漏。
主要特点 自动内存管理 QScopedPointer 在作用域结束时自动销毁所指向的对象调用其析构函数并释放内存。这样可以确保无论正常退出作用域还是通过异常退出作用域都会自动释放资源减少内存泄漏的风险。 无拷贝构造函数 QScopedPointer 不允许拷贝构造和拷贝赋值操作因此它的所有权是独占的。这个特性确保了不会意外地复制指针避免了重复删除相同内存的风险。 使用场景 适用于需要自动管理堆上对象生命周期的情况特别是在不需要共享所有权的场景中。
示例代码
#include QScopedPointer
#include QDebugclass MyClass {
public:MyClass() {qDebug() MyClass created;}~MyClass() {qDebug() MyClass destroyed;}
};int main() {{QScopedPointerMyClass ptr(new MyClass);// ptr 的作用域结束后会自动调用析构函数} // 离开作用域MyClass 对象会被销毁return 0;
}
二 Q_DISABLE_COPY
Q_DISABLE_COPY(MarkerPointRecognitionPage);
显式禁用拷贝构造函数和赋值运算符。 这意味着 MarkerPointRecognitionPage 类不能被拷贝或赋值这是一个非常好的做法尤其是当类内部有指针成员如 QScopedPointer时拷贝操作通常会导致浅拷贝或资源管理上的问题。