Hogy lehetne megfogalmazni a példány és a változó közti különbséget?
"Egy változó az valójában egy mutató aminek az értéke egy memóriarekeszre mutat ahol az adat van amit el akar érni."
Na most. Ha azt írom (akármelyik fentebb említett nyelven), hogy
int x = 0;
akkor mit is hoztam létre? Az x név 0, ha jobbérték és a 0 tartalmú rekesz címe, ha értékadás bal oldalán áll. Ti mire gondoltok? Értéktípusok vannak C#-ban és Javaban.
Iostream,ha tudod hogy ez az egész,hogy van akkor nyújts nekem egy kis felvilágosítást.
Mi a változó és a példány közti különbség?
Mit értesz példány alatt egy objektumot?
Objektum: valami a memóriában.
A fenti példával:
int x;
Itt lesz egy x nevű változóm valamilyen scope-ban, és lesz egy int példányom valahol (stacken, statikus tárban).
new int;
Itt lesz egy int példányom a heapen, és nincs változóm.
int* x = new int(10);
Itt lesz egy int mutató példányom a stacken, lesz egy int példányom a heapen és lesz egy x változó a stacken.
int x;
int& y(x);
Itt lesz egy int példányom a stacken és lesz egy x meg egy y változóm, ami véletlenül ugyanazt a példányt azonosítják.
int& x(*(new int(10)));
Itt lesz egy int példányom a heapen és lesz egy x nevű változóm, ami ezt azonosítja.
Jó, ez utóbbi kettő inkább csak a C++ referenciák lelkivilágára mutat rá, de azért érzékeltet is valamit.
Példány: objektum (objektum: bármi) a memóriában.
Változó: valami névvel rendelkező dolog, amivel hivatkozni lehet egy példányra.
Szerintem 2 fajta értelmezés van. Egyik amit az 1. válaszoló mondott, a másik meg az, amit iostream ír. Esetleg még egy közteset is meg lehet fogalmazni:
Változó: név + típus + memóriacím (de általában nem összetett a típus)
Példány: ezzel azt akarjuk kihangsúlyozni, hogy egy bizonyos összetett osztályból létrehozott példány. Tartozik hozzá típus és memóriacím, de név nem kötelezően.
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!