前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Q_DISABLE_COPY宏

Q_DISABLE_COPY宏

作者头像
Qt君
发布2020-05-25 15:50:31
1K0
发布2020-05-25 15:50:31
举报
文章被收录于专栏:跟Qt君学编程跟Qt君学编程

❝Q_DISABLE_COPY宏作用是禁止对给定的类使用复制构造函数和赋值运算符。 ❞

Q_DISABLE_COPY作用

「Q_DISABLE_COPY宏作用是禁止对给定的类使用复制构造函数和赋值运算符。」 Q_DISABLE_COPY宏多使用在QObject类或其派生类中。如果我们需要禁止用户复制或赋值类对象,在类内使用Q_DISABLE_COPY宏即可。

  如果某些类内有指针成员变量,那么在复制或赋值很容易时候就会出现浅拷贝问题,当「复制类」的指针成员变量被释放时,「原类」内的指针成员变量再次释放就会导致程序意向不到的后果(二次析构)。

Q_DISABLE_COPY宏源码

  • Qt4版本
代码语言:javascript
复制
#define Q_DISABLE_COPY(Class) \
    Class(const Class &); \
    Class &operator=(const Class &);
  • Qt5版本
代码语言:javascript
复制
#ifdef Q_COMPILER_DELETE_MEMBERS
# define Q_DECL_EQ_DELETE = delete
#else
# define Q_DECL_EQ_DELETE
#endif

#define Q_DISABLE_COPY(Class) \
    Class(const Class &) Q_DECL_EQ_DELETE;\
    Class &operator=(const Class &) Q_DECL_EQ_DELETE;

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Qt君 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Q_DISABLE_COPY作用
  • Q_DISABLE_COPY宏源码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档