Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem 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í. :-/

Odpověď na otázku

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny