Sign in Join
Wiki copytemporary

Destructor/fi

Deutsch · English · Suomi

Varattu sana destructor kuuluu olio-ohjelmointiin. Purkajaa käytetään vapauttamaan käytetyt resurssit kuten muisti. Purkaja on aina tehtävä siten, että kun muistia vapautetaan niin koko luokan (olion) käyttämä muisti vapautetaan eikä näin ollen tapahdu muistivuotoa.

Olion purkaminen tapahtuu kutsumalla luokan free metodia. Free:n kutsuminen aiheuttaa destroy-kutsun. Siinä myös tarkistetaan ettei self-muuttujan arvo ole nil.

Esimerkiksi:

pascal

program Project1;
{$mode objfpc}{$H+}

type

  // luokan määritelmä
  { TClass }

  TClass = Class
    constructor Create;
    destructor Destroy; override; // sallii vanhemman luokan purkajan käytön
  end;

// luokan rakentaja
constructor TClass.Create;
begin
  Writeln('Rakennetaan olio');
end;

// luokan purkaja
destructor TClass.Destroy;
begin
  Writeln('Puretaan olio');
  inherited; // Käyttää myös vanhemman luokan purkajaa
end;

var

// kerrotaan luokan muuttuja
  myclass: TClass;

begin
  myclass:= TClass.Create; // alustaa olion kutsumalla oman luokkaansa rakentajaa
  Writeln ('Jotain koodia ...');
  myclass.Free; // Free kutsuu oman luokan Destroy purkajaa
  Writeln ('Paina jotain näppäintä');
  Readln;
end.

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.

Revision 1, last changed by WikiArchive .

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.