A statikus adattagok a tagváltozókkal ellentétben nem definiálódnak automatikusan ugye? És ezért nem lehet őket a konstruktorban egyből inicializálni mert még nem léteznek és ezért még csak memóriaszemét sem lehet bennük ugye?
Kevered a definiálást és az inicializálást.
Ha nem definiálsz valamit, akkor nem hivatkozhatsz rá, különben a linker azt fogja mondani, hogy nem találja. Ha lefordul a program, és használod a változót, akkor valahol definiáltad. Ez FORDÍTÁSI időben történik.
Az INICIALIZÁLÁS meg egy futási idejű dolog, és a legtöbb statikus a main függvény meghívódása ELŐTT inicializálódik (a kivételt a függvényekben lévő statikusok, azok akkor jönnek létre, amikor először rájukfut a vezérlés, tehát akár az is lehet, hogy soha).
Ráadásul a statikusok, ha nem inicializálod őket, automatikusan 0-ra jönnek létre, így soha nem lehet bennük memóriaszemét kezdetben.
"legtöbb statikus a main függvény meghívódása ELŐTT inicializálódik"
Ha ez igaz akkor ez miért nem fordul le hisz magától inicializálódnia kéne nullára.
class H
{
public:
static int x ; //Muszáj inicializálnom mert nem inicializálódik magától 0 ra.
};
int main()
{
H h;
return int(0) ;
}
Akkor mégsem inicializálódnak maguktól nem.
A deklaráció:
A deklarációval létrehozom valaminek a prototípusát.
Változók esetében int x; egyben deklaráció és definiálás is mert nem csak prototípus hanem használható létrehozott változó szóval meg is van valósítva.Ezért ez deklaráció és definíció is.
definíció:
Akkor egyértelmű hogy a definíció valaminek a működési megvalósítása pl egy függvénynek.
inicializáció pedig a kezdeti értékadás ami futásidőben történik.
Értem én ezeket mégsem tudom,hogy az iostream miről beszél.
A könyv szerint muszáj inicializálni a statikus adattagokat mert ha nem teszem meg fordítási hibát kapok.
Világosítsatok már fel pls teljesen össze vagyok zavarodva.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!