abstrakte basisklassse aus std queue



  • Moin,

    also habe ich mir mit queue<job*> jobqueue einen fifo angelegt.

    der job ist abstrakt (virtual=0) und die abgeleitenen jobs werden in queue gepackt.

    job *aJob = new jobBLABLA();
    jobqueue.push(aJob);

    Aber wie bekomme ich den aJob wieder

    job *tmp = jobqueue.push() -> führt zu "void value not ignored as it ought to be"

    irgendwie fehlt mir ja auchder speicher - der müsste ja sogar dyn sein.
    ich weiss nicht weiter 😢

    mfg
    david wal



  • Hallo

    Siehe queue::front.

    bis bald
    akari



  • bei front compiliert er zwar sauer aber sobald ich auf
    den tmp job zugreife -> segmen, fault!!!

    woran liegt das ?? muss ich erst herausfinden WAS auf der queue liegt und speiocher resevieren?? habe keine ahnung!!!!

    job *tmp = jojqueue.front();
    std::cout<< tmp->getStatment(); // seg fault

    eicht komisch!!



  • Hallo

    Wenn nichts in der Queue drin ist liefert front() 0 zurück. Außerdem kann queue auch nicht überprüfen ob die Elemente auf gültige Instanten zeigen.

    bis bald
    akari



  • @davidwal:

    Mach doch mal ein Minimalbeispiel (<20 Zeilen), das Dein Problem demonstriert. Dann ist es sicher leichter Dir zu helfen.


Anmelden zum Antworten