Brauche hilfe bei erase() (Fehlermeldung)



  • Hallo Leute ich hab eine Klasse erstellt und Objetkte dieser Klasse in einen Vector gepackt. Nun möchte ich ein Objekt aus dem Vector löschen aber bekomme dabei immer den gleichen Fehler -.- Hab schon etwas recherchiert und ich glaube der Fehler liegt irgendwo bei der übergabe von Referenzen im Konstruktor (kann aber auch ganz was anderes sein 😉 ) Hier zum Code:

    Header:

    #ifndef SKELETON_H
    #define SKELETON_H

    class Skeleton
    {

    public:
    Skeleton(RenderWindow &r_window, Player &r_player, float x, float y);
    int status;
    static Texture skeleton_texture;

    //Hab alles irrelevantes hier rausgelöscht
    };
    #endif

    CPP Datei:

    #include "Skeleton.h"

    Texture Skeleton::skeleton_texture;

    Skeleton::Skeleton(RenderWindow &r_window, Player &r_player, float x, float y)
    :window(r_window), player(r_player)
    {

    }

    Code wo die Objekte erstellt werden (includes etc vorhanden):

    std::vector <Skeleton> skeleton_vector;

    Skeleton skeleton1 = Skeleton(window, player, 100, 200);
    skeleton_vector.push_back(skeleton1);
    Skeleton skeleton2 = Skeleton(window, player, 1500 - 32, 200);
    skeleton_vector.push_back(skeleton2);

    ... //irrelevanter Code 😉

    for (unsigned int i = 0; i < skeleton_vector.size(); i++)
    {
    skeleton_vector[i].update();
    if (skeleton_vector[i].status == 0)
    {

    skeleton_vector.erase(skeleton_vector.begin() + i);
    }
    }

    Ich bekomme immer folgende Fehlermeldung:
    Die Funktion 'operator =' ist in 'Skeleton' nicht verfügbar

    Ich hoffe jemand kann mir helfen und bedanke mich schon im voraus 😉


  • Mod

    Bitte sofort das richtige Forum wählen:
    https://www.c-plusplus.net/forum/333318


Log in to reply