problem mit list<>



  • hallo,

    ich versuche mich das erste mal an einer verketteten liste und das ganze zeug mit templates.

    habe folgende klassendef ( ohne die elementfunktionen )

    #include <iostream>
    #include <string>
    
    using namespace std;
    
    class Fahrzeuge
    {
    public:
    	Fahrzeuge();
    	~Fahrzeuge(void);
    
    [... restlichen elementfunktionen, reine zuweisungen]
    };
    
    int main()
    {
    	Fahrzeuge *car = NULL;
    
    	list<Fahrzeuge> kfz;
    	kfz.push_back(car);
    };
    

    bekomme folgende fehlermeldung:

    error C2664: 'std::list<_Ty>::push_back': Konvertierung des Parameters 1 von 'Fahrzeuge *' in 'const Fahrzeuge &' nicht möglich
    with
    [
    _Ty=Fahrzeuge
    ]
    Ursache: Konvertierung von 'Fahrzeuge *' in 'const Fahrzeuge' nicht möglich
    Quelltyp konnte von keinem Konstruktor angenommen werden, oder die Überladungsauflösung des Konstruktors ist mehrdeutig

    kann mit dieser fehlermeldung leider nicht all zu viel anfangen...
    jetzt rein vom syntaktikschen ansatz, was ist falsch?

    danke schon im voraus und gruß



  • int main()
    {
    	Fahrzeuge *car = NULL;
    
    	list<Fahrzeuge*> kfz;   // <--- Stern* vergessen
    	kfz.push_back(car);
    };
    

    Du willst eine Liste von Zeigern, also musst Du sie so deklarieren.



  • ach immer diese leichtsinnfehler 🙂

    trotzdem vielen dank, war schon am verzweifeln...


Anmelden zum Antworten