STL vector: Kind abstrakter Klasse einfügen

NetzUnity und Informatik-forum wurden zusammengelegt. Eine entsprechende Ankündigung wird demnächst noch folgen. Für 2025 ist hier einiges geplant! Bei Fragen bitte per DM an Maximilian Rupp wenden.
  • Wir versuchen in einen Vektor die Implementierung einer abstrakten Klasse als Pointer einzufügen, der Debugger meldet bei push_back einen uns unerklärlichen Fehler. Hier die Klassen-Hierarchie:

    abstrakte Basisklasse:

    Code
    class FractalAlgorithm {
    public:
    	virtual vector<FractalPosition>* generatePositions() = 0;
    };

    Implementierung in einer Subklasse:

    Code
    class LSystemAlgorithm : public FractalAlgorithm {
    	// definition der objektvariablen ..
    public:
    	LSystemAlgorithm(..);
    	vector<FractalPosition>* generatePositions();
    };

    Und so wird der vector erstellt und befüllt:

    Der Fehler wird im vector (stl_vector.h) an folgender Stelle gemeldet:

    Code
    void push_back(const value_type& __x) {
    
    
    ->  if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage)
    
    
          // ...

    Weiß jemand woran der Fehler liegt? Wie behebt man ihn?

  • Zitat von morgan

    Wir versuchen in einen Vektor die Implementierung einer abstrakten Klasse als Pointer einzufügen, der Debugger meldet bei push_back einen uns unerklärlichen Fehler. Hier die Klassen-Hierarchie:

    virtual vector<FractalPosition>* generatePositions() = 0;

    Wieso ist fractals auch ein Pointer (auf einen Vektor)? Hast Du das Objekt schon mit new angelegt? Ein Vektor sollte reichen.

  • Zitat von kubuntu

    hmmm wenn in der Zeile wo du sagst der Fehler auftritt dann kann das ja eigentlich nur ein nicht initialisierter pointer sein (der vector ptr).


    und

    Zitat von Spockman

    Hast Du das Objekt schon mit new angelegt?

    ja richtig, das war der dumme fehler. danke für den tip!

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!