Objektové C++
Chtěl bych se zeptat na jeden začátečnický dotaz.
Používat globální proměnné je zlozvyk ze středověku.
Tudíž se snažím založit třídu a používat hodnotu v ní jako "globální proměnnou":
(Nebojte třída bude ještě rozšířena )
// původně:
int nejakaPromenna;
//posléze:
class nejakaTrida
{
private:
int hodnota;
public:
int vratHodnotu();
void nastavHodnotu(int noveCislo);
};
int nejakaTrida::vratHodnotu()
{
return hodnota;
}
void nejakaTrida::nastavHodnotu(int novaHodnota)
{
hodnota = novaHodnota;
}
nejakaTrida tatoTrida;
//Posléze tedy píší všude v programu,namísto:
nejakaPromenna = 20;
tatoTrida.nastavHodnotu(20);
//Pripadne :
int mainBuffer = tatoTrida.vratHodnotu;
Na první pohled vypadá asi vše bezproblémově.Jenomže i když se program spustit podaří, nabere nedefinovaný stav a spadne.
Nemohu si dovolit uvádět celý kód (je to idiotsky(tm) dlouhé).
Proto se chci zeptat- mám podezření na výmaz údajů.
Je nedefinována někde po opuštění funkce nastavená hodnota v této třídě ?
Jako laik bych řekl, že ne... ale padá možná kvůli tomuto program ....
Uvedenou hodnotu sdílí několik různých funkcí.