3

QObject から派生したクラスを返そうとしていますが、次のエラーが発生しています

Error : 'QObject::QObject' : cannot access private member declared in class 'QObject'   

この状況は私のシナリオに似ています

ヘッダー ファイル:B.h

class B : public QObject
{
        Q_OBJECT
        private:
            ...
        public:
            B(QObject* parent = 0);
            ...
}

CPP ファイル:B.cpp

B:B(QObject *parent)
{
//Empty Constructor
}

ヘッダー ファイル:A.h

class A
{
private:
     B myClassB;
public :
     B ReturnClassB();
}

CPP ファイル:C.cpp

B A::ReturnClassB()
{
   return myClassB; //This is where the error occurs
}

何がうまくいかないのかについて何か提案はありますか? コピーコンストラクタの問題ですか?

4

2 に答える 2

1

もちろん。QObject をコピーまたは割り当てることはできません。そして、これはまさに A::ReturnClassB(); で行うことです。

于 2013-08-14T22:29:44.483 に答える