Konstruktoraufruf verschachtelte Liste?



  • Hallo!

    ich bin C++-Anfänger und habe eine Frage:

    Ich möchte einen QVector mit Einträgen QLists erzeugen.
    Der Konstruktor für die Klasse ist wie folgt definiert:

    ...Blubb::Blubb(const QVector<QList<THF> > & i_mondayTillSunday) :
    m_mondayTillSunday(i_mondayTillSunday)
    {
    }

    THF ist ein definierter Datentyp der drei Zahlen und wieder eine Liste darstellt.

    ich habe ein Objekt tmp vom Typ THF erzeugt.
    Wie aber genau erzeuge ich ein Blubb Objekt? Irgendwie so?
    ...Blubb tmp0(QVector<QList<TemperatureHourFactors> > () << QList<TemperatureHourFactors>() << tmp << tmp ?

    Nach meinem Verständnis müsste damit ein Objekt tmp0 vom Typ Blubb erzeugt werden welches besteht aus: QVector mit einem Eintrag der eine QList der Länge 2 enthält.

    1. der Code läuft nicht
    2. Wie erzeuge ich ein Objekt Blubb tmp1 dessen QVector mehrere Einträge hat?

    Danke!



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x und C++11) in das Forum Andere GUIs - Qt, GTK+, wxWidgets verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • In einigen separaten Anweisungen vor der Erzeugung dieses tmp0 Objektes.

    Ich hab dir hier mal ein kleines Beispiel mit STL-Containern gemacht:

    class Foo
    {
    public:
    	typedef std::stack<int> IntList;
    	typedef std::vector<IntList> Liste2D;
    
    private:	
    	Liste2D m_liste;
    
    public:
    	Foo(Liste2D const& l)
    	 : m_liste(l)
    	{	}
    };
    
    int main()
    {
    	Foo::IntList l1;
    	l1.push_back(1);
    	l1.push_back(2);
    
    	Foo::Liste2D l2;
    	l2.push_back(l1);
    	l2.push_back(l2);
    
    	Foo tmp0(l2);
    
    	return 0x0;
    }
    


  • danke für den Tipp mit pushback().
    Könnte ich ein leeres Objekt erzeugen wüsste ich wohl was zu tun ist.

    Jedoch kompiliert

    Class1::Class2::Blubb tmp0(QVector<QList<THF> > () );

    nicht.

    Mit dem Beispiel habe ich leider ein paar Verständnisprobleme...

    Danke,nerdpol



  • Für alle die das selbe Prob haben:

    Es muss heißen:

    Class1::Class2::Blubb tmp0(QVector<QListClass1::Class2::Blubb::THF >() << (QListClass1::Class2::Blubb::THF() << tmp));

    erzeugt ein Objekt.


Anmelden zum Antworten