Hej piszę projekt na zaliczenie na studia i mam taki problem:
Stworzyłem klasę z metodami wirtualnymi "Item" oraz klasy które po niej dziedziczą (Mele, Armor itp.). Mam taki vector który ma je wszystkie przechowywać "itemki_w_eq". Tu właśnie pojawia się moje pytanie czy w takim wypadku muszę się obawiać o memory leak'i, jeśli tak to w jaki sposób im zapobiec?
Klasa Mele oraz Item:
class Item
{
public:
virtual void animacja(int nr_klatki) = 0;
virtual void load() = 0;
};
//Klasa dla broni mele
class Mele :public Item
{
private:
sf::Texture tekstura_eq;
sf::Texture tekstura_postac;
sf::Texture tekstura_attack;
//Staty staty;
std::string name;
public:
Mele(std::string name) : name(name) {};
virtual void animacja(int nr_klatki) override
{
std::cout << "a";
}
//funkcja do inicjacji itemu nie ma potrzeby wywolywac jesli tekstury nie beda potrzebne
virtual void load() override
{
std::cout << "a";
}
};
Tu obawiam się problemów z memory leak:
for (int i = 0; i < itemki.size(); i += 2)
{
if (itemki[i + 1] == "mele")
{
itemki_w_eq.push_back(new Mele(itemki[i]));
}
}
Inicjacja itemki_w_eq:
std::vector<Item*> itemki_w_eq;