Programozzunk együtt!
A new és delete
utasítás II.
Az előző alkalommal átnéztük a new és delete -el való
dinamikus memóriakezelést. Most megismerkedünk az objektum-orientált programozás (OOP) alapjaival, vagyis az objektumok
dinamikus kezelésével.
Mint láttuk, a
*;
// Mutato -re
nev=new ; // Memoria lefoglalas
hatására lefoglalódik sizeof(tipus) byte
memória. Az objektumoknál ugyanez a helyzet, egy osztály
magában is típus értékű, így a "C-s"
struct struktúra
struktúra_peldany
helyett egyszerűen a következővel is
létrehozhatunk további osztályokat:
osztaly osztaly_peldany
A következő programrész bemutatja, hogyan
lehet az osztályokat (objektumokat) dinamikusan kezelni. (Ne
ijedj meg, ha nem érted a forrás minden részletét - a
következőkben mindenről részletesen szó lesz. Egyelőre
elég annyit megjegyezni, hogy a class a C++ -ban lényegében a
struct-tal megegyező funkciójú, de mindemellett több
lehetőséget kínál. Minderről részletesen a jövőben!)
// OOP_PL_1.CPP - Egyszeru
pelda a dinamikus OOP bemutatasara
#include
class tpelda // Pelda osztaly
{
int szam; // Egy 'int' tipusu valtozo
};
void main(void)
{
tpelda *pelda; // Letrehozunk egy mutatot 'pelda' nevvel
if (!(pelda = new tpelda)) // A 'pelda' mutato segitsegevel
megprobalunk
{ // memoriat foglalni az osztaly reszere...
cerr << "Nem sikerult lefoglalani memoriat!!";
exit (1); // Ha nem sikerul, akkor kilepunk...
}
delete pelda; // Toroljuk
'pelda'-t. - Memoria felszabaditasa
// Program vege
Nos, itt már látható volt a lényeg: az
objektumokat ugyanúgy kezelhetjük, mint bármely más
memóriaegységet, és bátran használhatjuk a dinamikus
memóriakezeléshez a new és delete operátorpárost. Ezt a kis kitérőt azért tartottam
fontosnak, hogy az OOP során már egyértelmű legyen a new és delete
használata, és így fel tudjuk használni a következő nagy
témakörhöz, az Objektum Orientált Programozás
megismeréséhez.
2001. június 18., hétfő 11:34