2012-12-13 55 views
-1

我有兩個類名「mamad」和「學生」和他們兩個都從我的班「基地」 繼承「基地」從QObject的分配兩個的QObject

在學生類繼承我有一個場:「主題」,這是一個瑪馬德 和我有一個功能(setsubject)採取新聞主體和複製新聞主體的主題。

,但我有一個錯誤:

"QObject& Qobject::operator=(const QObject)" is private ! 
"within this context" 

我怎樣才能解決這個問題?

這是我mamad類:

class mamad:public Base 
{ 
    Q_OBJECT 
    Q_PROPERTY(int id2 READ getId2 WRITE setId2) 
    Q_PROPERTY(QString Name2 READ getName2 WRITE setName2) 
public: 
    mamad(Base* parent=0); 
    int getId2() const { return id2; } 
    void setId2(int newId) { id2 = newId; } 
    QString getName2() const { return Name2; } 

    void setName2(const QString &newName) { Name2 = newName; } 
private: 
    int id2; 
    QString Name2; 

}; 

,這是我的學生類:

class student : public Base 
{ 
    Q_OBJECT // Q_OBJECT macro will take care of generating proper metaObject for your class 
    Q_PROPERTY(int id READ getId WRITE setId) 
    Q_PROPERTY(QString Name READ getName WRITE setName) 
    Q_PROPERTY(mamad subject WRITE setsubject) 

public: 
    student(Base * parent=0); 
    int getId() const { return id; } 
    void setId(int newId) { id = newId; } 
    QString getName() const { return Name; } 
    void setName(const QString &newName) { Name = newName; } 
    // mamad getsubject()const {return subject;} 
    void setsubject(mamad newsubject) {subject=newsubject; } 


private: 
    int id; 
    QString Name; 
    mamad subject; 
}; 

,我必須說,我有這個問題,getsubject功能太強了,我不知道如何解決它。

請,請,幫我

回答

1

這聽起來像QObject s的並不意味着在默認情況下被複制。也許你最好寫一個copy功能,拷貝只是什麼參數,你需要從newsubjectsubject

編輯:This post(可能重複)expains多了,說你是爲了只存儲和指針複製到QObject S和不對象本身。

例如 - 非常基本的和使用原始指針。建議根據需求

class student : public Base 
{ 
    ... 
    void setsubject(mamad* newsubject) {subject=newsubject; } 
    ... 
    mamad* subject; 
}; 

stud.setsubject(&mamadObj); 
+0

謝謝你的回答,但你能告訴我一個例子嗎?(指針)? Merci。 –

+0

@ErfanTavakoli我不知道qt本身,但我已經添加了一個使用[指針](http://www.cplusplus.com/doc/tutorial/pointers/)的基本示例。 –

1

QObject使用std::unique_ptrstd::shared_ptr可以,因爲它在docs和錯誤消息明確表示被複制。

您將不得不使用setsubject作爲克隆方法,即通過手動複製mamad之間的字段來複制狀態。

相關問題