首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误-:'QObject::QObject‘:无法访问类'QObject’中声明的私有成员

错误-:'QObject::QObject‘:无法访问类'QObject’中声明的私有成员
EN

Stack Overflow用户
提问于 2013-08-14 21:50:41
回答 2查看 4.5K关注 0票数 3

我试图返回一个从QObject派生的类,并得到以下错误

代码语言:javascript
复制
Error : 'QObject::QObject' : cannot access private member declared in class 'QObject'   

这种情况类似于我的情景。

头文件:B.h

代码语言:javascript
复制
class B : public QObject
{
        Q_OBJECT
        private:
            ...
        public:
            B(QObject* parent = 0);
            ...
}

CPP文件:B.cpp

代码语言:javascript
复制
B:B(QObject *parent)
{
//Empty Constructor
}

头文件:A.h

代码语言:javascript
复制
class A
{
private:
     B myClassB;
public :
     B ReturnClassB();
}

CPP文件:C.cpp

代码语言:javascript
复制
B A::ReturnClassB()
{
   return myClassB; //This is where the error occurs
}

对可能出什么问题有什么建议吗?这是一个复制构造函数问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-14 22:29:32

QObject类有一个私有复制构造函数。因此,您不能复制从QObject派生的类的实例。还请参阅关于身份与价值的关于此页的讨论QObject

如果您希望能够复制B的实例,那么要么不继承QObject,要么提供一些克隆B的方法(注意确保适当地管理内存)。

票数 4
EN

Stack Overflow用户

发布于 2013-08-14 22:29:44

当然了。您不能复制或分配QObjects。这正是你在A::ReturnClassB()中所做的;

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

https://stackoverflow.com/questions/18242944

复制
相关文章

相似问题

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