Sign in Join
Wiki copytemporary

Destructor/fi: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: Destructor/fi

OldNewLine
1+[[Reserved word/fi|Varattu sana]] `destructor` kuuluu [[object-oriented programming/fi|olio-ohjelmointiin]]. Purkajaa käytetään vapauttamaan käytetyt resurssit kuten muisti. Purkaja on aina tehtävä siten, että kun muistia vapautetaan niin koko [[Class/fi|luokan]] (olion) käyttämä muisti vapautetaan eikä näin ollen tapahdu muistivuotoa.
2+
3+Olion purkaminen tapahtuu kutsumalla luokan `free` [[Method/fi|metodia]]. `Free`:n kutsuminen aiheuttaa `destroy`-kutsun. Siinä myös tarkistetaan ettei [[Self/fi|self]]-[[Variable/fi|muuttujan]] arvo ole [[Nil/fi|nil]].
4+
5+Esimerkiksi:
6+
7+``` pascal
8+
9+program Project1;
10+{$mode objfpc}{$H+}
11+
12+type
13+
14+ // luokan määritelmä
15+ { TClass }
16+
17+ TClass = Class
18+ constructor Create;
19+ destructor Destroy; override; // sallii vanhemman luokan purkajan käytön
20+ end;
21+
22+// luokan rakentaja
23+constructor TClass.Create;
24+begin
25+ Writeln('Rakennetaan olio');
26+end;
27+
28+// luokan purkaja
29+destructor TClass.Destroy;
30+begin
31+ Writeln('Puretaan olio');
32+ inherited; // Käyttää myös vanhemman luokan purkajaa
33+end;
34+
35+var
36+
37+// kerrotaan luokan muuttuja
38+ myclass: TClass;
39+
40+begin
41+ myclass:= TClass.Create; // alustaa olion kutsumalla oman luokkaansa rakentajaa
42+ Writeln ('Jotain koodia ...');
43+ myclass.Free; // Free kutsuu oman luokan Destroy purkajaa
44+ Writeln ('Paina jotain näppäintä');
45+ Readln;
46+end.
47+```
48+
49+---
50+*From the Free Pascal wiki, page "Destructor/fi", as it stood on 2022-08-06 after a change by Kai Burghardt, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history