2015-06-02 77 views
1

如何製作QList以便該列表可以包含來自多個類的信息(類由兩個Map-Containers操作)?用QT Creator/C++編寫類QList

這是我4類:

班講座:

class Veranstaltung 
    { 
    private: 
     QMap<QString, LV >myLV; 
    public: 
    Veranstaltung() {} 
    void listLV(QTextStream& out) const; 
    ... 
    }; 

    #endif // 

班的教授職位

LIST_H 

    class ProfessurList 
    { 
    private: 
     QMap<QString, Professur> myProfessuren; 
    public: 
     ProfessurList() {} //kann man weglassen 
     void addProf(QTextStream& in,QTextStream& out); 
     void listProf(QTextStream& out) const; //Warum const? 
     ... 
    }; 

    #endif // PROFLIST_H 

另一類的講座,其中私人和公共的定義:

#ifndef LV_H 
#define LV_H 

class LV 
{ 
private: 
    QString myNummer; 
    QString myBezeichnung; 
    QString myTyp; 
public: 
    LV(const QString& nummer, const QString& bezeichnung, const QString& typ): 
     myNummer(nummer), myBezeichnung(bezeichnung), myTyp(typ) 

    {} 
    QString nummer() const { return myNummer;} 

    ... 
}; 
QTextStream& operator<<(QTextStream& out, const LV& l); 

#endif // LV_H 

另一類私人地方及陰毛被定義爲proffessorships:

#ifndef PROF_H 
    #define PROF_H 


    class Professur 
    { 
    private: 
    QString myKuerzel; 
    QString myName; 
    QString myLehrstuhlinhaber; 
    public: 
    Professur(const QString& kuerzel, const QString& name, const QString& lehrstuhlinhaber): 
     myKuerzel(kuerzel), myName(name), myLehrstuhlinhaber(lehrstuhlinhaber) 
    {} 

    ... 
    }; 
    QTextStream& operator<<(QTextStream& out, const Professur& pr); 

    #endif // PROF_H 
+0

我不確定你在問什麼。你能詳細說明你想要做什麼,以及它與你包含的代碼片段有什麼關係? – MrEricSir

+0

您能否澄清一下您需要在QList中存儲什麼? – demonplus

+0

爲了存儲異構數據,使用'QVariant',特別是''QVariantList'。 – Amartel

回答

1

不能只需創建與X對象結構?像:

Struct ProfessorsAndLecturs 
{ 
    Veranstaltung v; 
    LEctures l; 
    ... 
}; 
ProfessorsAndLecturs pal; 
pal.v = ...; 
pal.l = ...; 

QList<ProfessorsAndLecturs> list; 
list.append(pal); 

及更高版本:

list.at(0).l; 
etc. 

如果這是你要求什麼。

+0

謝謝@kajojeq,但我必須用類來做到這一點,我爲教授和講座定義了類(3和4),並且製作了兩個地圖容器,在這些容器中應該操作元素(並將其保存到文本文件中QLists的cpp文件),我已經用1和2做了這個,定義了額外的類作爲QLists,這個,我還需要做:寫講座,這是在一個教授,我不知道我怎麼能達到這兩個類的信息,以及在哪裏:在一個新的文本文件(cpp)或其他內容必須在一個.h文件中定義 –

+0

@DianaPapukchieva這是一種很難理解你所要求的,但我試着:也許你需要在proffesures.h文件中添加'#include「LV.h」'''以後''列表中的講座列表''然後當你添加講座的時候添加講座也添加到這個列表中,並且現在你擁有了對象proffesure它擁有的講座清單。現在對象有:object.lectureList;如果你寫完整的任務你可能會更容易。 – kajojeq

+0

我會在「LV.h」中試試,非常感謝,我無法完成我的全部任務,因爲這是一項家庭作業,我必須單獨解決,另外還有一個感謝。 :) –