• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Static -> konstruktor klasy

Object Storage Arubacloud
0 głosów
206 wizyt
pytanie zadane 23 grudnia 2015 w C i C++ przez niezalogowany

Muszę wiedzieć jak statyczną zmienną przenieść do konstruktora i ją inkrementować, podobnie w destruktorze. Wszystkie funkcje składowe są w osobnym pliku .cpp tak jak konstruktor i destruktor. Szukałem i na forum i u wujka i wgl wszędzie ale nie znalazłem takiego wątku.

2 odpowiedzi

0 głosów
odpowiedź 23 grudnia 2015 przez Patryk Krajewski Nałogowiec (26,170 p.)
wybrane 23 grudnia 2015
 
Najlepsza
Daj cały kod bo nie wiem czy zdefiniowałeś to zmienną statyczną.
komentarz 23 grudnia 2015 przez niezalogowany
ok ok to wyjaśnij mi jeszcze czym by to się różniło od volatile
komentarz 23 grudnia 2015 przez Patryk Krajewski Nałogowiec (26,170 p.)
Ale że jakbyś zamiast unsigned int dał volatile int ?
komentarz 23 grudnia 2015 przez niezalogowany
dokładnie (12 znaków)
komentarz 23 grudnia 2015 przez Patryk Krajewski Nałogowiec (26,170 p.)
unsigned int oznacza że zmienna może przechowywać tylko liczby >= 0 a

volatile int że kompilator ma być ostrożny bo jeśli w programie napiszemy cout << zmienna to program wypisze wartość zmiennej ale gdy mamy(przykład z Symfonii) termometr i wypiszemy cout << temperatura to pokaże się temperatura(program wyszuka w pamięci i wypiszę) ale gdy za drugim razem w programie nic nie zrobimy z to zmienną a temperatura się zwiększy to wypiszę nam się nie poprawna wartość bo kompilator pomyśli "nie muszę tracić czasu na odczytywanie jej z pamięci, miałem przecież ją zapisaną gdzieś na boku" i temu można zapobiec używająć właśnie przydomka volatile. Rozumiesz?
komentarz 23 grudnia 2015 przez niezalogowany
Aaa... kumam. Ok dzięki :)
0 głosów
odpowiedź 23 grudnia 2015 przez draghan VIP (106,230 p.)
Przepraszam, ale nie rozumiem. Co oznacza, że chcesz "przenieść" zmienną do konstruktora...? To jest zmienna statyczna względem klasy, czy zmienna statyczna względem funkcji?
komentarz 23 grudnia 2015 przez niezalogowany
class Bezpiecznik
{
public:
    void dodaj();//dodaje bezpiecznik do bazy
    void usun();//usuwa bezpiecznik z bazy
    void zmien();//zmienia wlasciwosci bezpiecznika z bazy

    Bezpiecznik(double=400,double=10,string="szybki");//konstruktor
    ~Bezpiecznik();//destruktor

private:
    static unsigned int il_bez;//ilosc bezpiecznikow
    double napiecie;//maksymalne napiecie
    double prad;//maksymalny prad
    string typ;//typ bezpiecznika(szybki itp)
};

Chodzi mi o to by zmienną il_bez inkrementować w konstruktorze i dekrementować w destruktorze. 

komentarz 23 grudnia 2015 przez draghan VIP (106,230 p.)

Czyli jest statyczna względem klasy. Takie zmienne są bardzo podobne do zwykłych zmiennych globalnych. Musisz ją zdefiniować w pliku z kodem programu (cpp) najlepiej w przestrzeni globalnej, w taki sposób:

unsigned int Bezpiecznik::il_bez = 0;

I możesz już używać odwołań do niej, np. w konstruktorze czy destruktorze:

Bezpiecznik::Bezpiecznik(double nap,double amper,string type)
{
    napiecie=nap;
    prad=amper;
    typ=type;
    Bezpiecznik::il_bez++;
}

Bezpiecznik::~Bezpiecznik()
{
    Bezpiecznik::il_bez--;
}

Podobne pytania

0 głosów
1 odpowiedź 334 wizyt
pytanie zadane 2 lipca 2017 w C i C++ przez soarez123 Nowicjusz (120 p.)
0 głosów
2 odpowiedzi 720 wizyt
0 głosów
1 odpowiedź 694 wizyt
pytanie zadane 9 kwietnia 2019 w C# przez rav89lodz Użytkownik (590 p.)

92,551 zapytań

141,399 odpowiedzi

319,531 komentarzy

61,938 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...