C# ben hogyan lehet csak simán deklarálni egy objektumot?
Példa:
Tipus x; //Ebben az esetben létrejön a Tipus egy darabja?
Tipus x = new Tipus(); /*Ebben az esetben pedig a dinamikus memóriába jön létre?*/
Tipus x; // Lefoglalja a memóriát. // Deklaráció
x = new Tipus(); // Feltölti a memóriát. // Inicializáció
Az első hülyeséget beszél (tudtommal).
A
Típus x; létrehoz egy x nevű változót, ami egy referencia, tehát kicsi. Egy mutató, ami egyelőre nem mutat sehova.
Típus x = new Típus();
létrehozza az előbbi referenciát ÉS egy objektumot a heapen, és az x-be ennek a címét tölti.
iostream-nél a pont. Elég csak arra gondolni, hogy pl:
Tipus x;
Tipus y = new Tipus();
x = y;
ebben az esetben van egy memóriafoglalásod és két referenciád.
Tipus x; ezzel nem jön létre egy pointeren kívül semmi más.
Tipus x = new Tipus(); hát ezt így nem nagyon lehet kijelenteni, hogy a dinamikus memóriában(a.k.a. heap, ha arra gondolsz) jön létre, a C# nem ilyen egyszerű, de igazából ezzel neked nem is kell foglalkozni szerencsére.
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!