Destruktor klasy CShop nie był wirtualny. W rezultacie, usunięcie obiektu klasy pochodnej, takiej jak CShopEx, spowoduje wyciek pamięci. Brak deklaracji destruktora klasy bazowej jako wirtualnego powoduje, że podczas usuwania obiektu klasy pochodnej wywoływany jest destruktor klasy bazowej. Ponieważ destruktor klasy bazowej nie ma dostępu do pól specyficznych dla klasy pochodnej, pamięć przydzielona przez klasę pochodną nie jest zwalniana.
Cześć, 🖐️
Destruktor klasy CShop nie był wirtualny. W rezultacie, usunięcie obiektu klasy pochodnej, takiej jak CShopEx, spowoduje wyciek pamięci. Brak deklaracji destruktora klasy bazowej jako wirtualnego powoduje, że podczas usuwania obiektu klasy pochodnej wywoływany jest destruktor klasy bazowej. Ponieważ destruktor klasy bazowej nie ma dostępu do pól specyficznych dla klasy pochodnej, pamięć przydzielona przez klasę pochodną nie jest zwalniana.
Implementacja
📂 Lokalizacja pliku: 'game -> src -> shop.h'
🔍 Szukaj
♻️ Zamień