Dynamická alokace paměti
Jazyk C++ nabízí nové operátory new pro alokaci a delete pro uvolnění paměti. Operátor new zná třídu objektu, automaticky volá její konstruktor a také vrací příslušný typ ukazatele. Není třeba přetypovávat, během přiřazení probíhá typová kontrola. Uvolnění paměti, která byla alokována operátorem new, se musí provést pomocí operátoru delete. Tento operátor automaticky volá destruktor třídy.
Za klíčové slovo new píšeme označení typu proměnné, kterou chceme alokovat. Operátor vybere z volné paměti potřebné místo a vrátí ukazatel na ně. Pokud se operace nepodaří, vrátí se hodnota 0, což nepředstavuje platnou adresu.
double *prom;
prom = new double;
if (!prom) Chyba( ); //jestliže se alokace nezdařila, voláme funkci Chyba()
double *prom1;
prom1 = new double(5.23); //vytvoření s inicializací
if (!prom1) Chyba( );
Vozidlo *x, *y;
x = new Vozidlo(); //použití new pro třídu Vozidlo
y = new Vozidlo("1T1 7777", 2000); //můžeme použít kterýkoliv konstruktor
int *pole;
pole = new int[100]; //u pole nemůžeme použít inicializaci
delete prom; //uvolnění paměti
delete prom1;
delete pole;