New(): Porovnání verzí
Skočit na navigaci
Skočit na vyhledávání
(Žádný rozdíl)
|
Verze z 21. 9. 2012, 13:49
procedure New( var P: Pointer [; constructor ] );
Procedúra New() inicializuje inštanciu objektu typu, na ktorý ukazuje pointer “P”. Pridelí miesto v dynamickej pamäti podľa typu “P”. Ak je inicializovanie zložitejšie, bežne sa na túto činnosť používa zvláštna metóda objektu – konštruktor, ktorý sa uvádza ako nepovinný druhý parameter.
- Výstraha!
- Špecifikácia formálneho parametra (len) ako Pointer je zavádzajúca! V Turbo Pascale je možné deklarovať premennú ako pointer bezudania typu:
var P: Pointer;
ale v procedúre New() musí byť prvý parameter konkrétneho typu pointer na nejaký definovaný objekt (alebo záznam), ktorého dĺžka je známa a ktorú Pascal použije pri určovaní veľkosti pridelenej pre objekt (záznam). (Programátor v podobnej situácii, v príkaze GetMem() použije štandardnú funkciu SizeOf(), ktorá vráti dĺžku objektu (záznamu, inej entity), ktorá bola parametrom SizeOf .
- Ospravedlnenie
- Hovoríme o dynamickej pamäti . Namiesto toho by bolo vhodnejšie hovoriť o dynamicky prideľovanej pamäti. Dynamická pamäť je terminus technicus z technického vystrojenia počítačov (hardware) a znamená niečo úplne iné. Hovoriť o dynamickej pamäti v Turbo Pascale je však vžitý zlozvyk.