首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何从Qt类继承?

如何从Qt类继承?
EN

Stack Overflow用户
提问于 2014-05-08 04:08:52
回答 1查看 1.3K关注 0票数 0

我需要创建一个从QTextEdit继承的对象。问题是,每当我试图继承它时,我都会得到以下错误:

错误C2248:'QWidget::operator =‘class :无法从类'QWidget’访问已声明的私有成员

我试着定义了operator=,但是没有什么效果。即使我也定义了一个copy constructor。我一直都会犯这个错误。

EN

回答 1

Stack Overflow用户

发布于 2014-05-08 04:17:30

QWidget类是QObject的子类,它使用Q_DISABLE_COPY保护宏禁用复制和赋值操作。从QObject (或任何派生类)继承时,您定义的复制构造函数或赋值操作符将尝试访问基类的计数器部件,但它们在QObject中是私有的,无法访问。这是故意的。

作为一种副作用,继承自QObject的类的对象不能存储在STL或Qt容器(向量、列表等)中。只能存储指针或引用。因为获取/设置对象需要使用复制构造函数进行复制,这是不可能的。

如果既需要继承QWidget,又需要重载operator=和/或copy constructor,则可以为这些任务添加显式方法,如isEqualclone (尽管克隆QObject不是good idea)。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23532578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档