Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[c++] Dziedziczona klasa w wektorze bazowej

Ostatnio zmodyfikowano 2014-07-18 20:03
Autor Wiadomość
Jakobez
Temat założony przez niniejszego użytkownika
[c++] Dziedziczona klasa w wektorze bazowej
» 2014-07-18 16:53:56
Witam ,
1.Czy po "zpushowaniu" dziedziczonej klasy do wektora bazowej tracę wartości dziedziczonej? Chodzi mi o to
C/C++
//W funkcji alookuje w pamieci Bron (Nazwa,Opis,Damage,Celnosc(HitRate))
Weapon * Bron = new Weapon( "Nazwa", "Opis", 30, 50 );
// pushuje do wektora vector<Item*> playerInventory
playerInventory.push_back( Bron );
 
2.  Czy po skończeniu funkcji (Zasięg lokalny jest więc zostaje usuwany po skończeniu funkcji , tak?) jest automatycznie usuwany? Chodzi mi o to by nie było memory leaka przy new Weapon i czy muszę deletować tę zmienną.
Prosto - czy deletować new weapon czy nie trzeba?


3.Czy może gdzieś te dane jeszcze są? - Pogooglowalem i znalazłem że mogę się dostać do zmiennych dziedziczonej poprzez dynamiczne rzutowanie (KLASA BAZOWA JEST POLIMORFICZNA) . Czy taki sposób jest poprawny?
C/C++
( dynamic_cast < Weapon *>( playerInventory[ 0 ] ) )->damage;

I czy po wyłączeniu programu i włączeniu będę mógł wywołać  dmg? Bo domyślam się że po zpushowaniu dane Weapon zostały w pamięci i mogłem dynamicznie rzutować, a po restarcie aplikacji już nie będę mógł tego wyświetlić bo dane znikną z pamięci.

Dziękuję.
P-113963
pekfos
» 2014-07-18 17:36:03
1. Nie
2. Zależy
3. Nie.
P-113969
Jakobez
Temat założony przez niniejszego użytkownika
» 2014-07-18 20:03:10
Dziękuję , zamykam.
P-113982
« 1 »
  Strona 1 z 1