🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.pascal
Article #93020

Re: Fpc -- nowe elementy jezyka

#93020
From: Łukasz 'Maly' Ostrowski
Date: Mon, 07 Jun 2010 23:54
53 lines
2292 bytes
On Tue, 08 Jun 2010 01:03:55 +0200, Grzegorz Skoczylas wrote:
> <snip>
> Można też użyć "class var". To jest zmienna globalna, ale dostępna tylko 
> w obrębie klasy.
> 
> type
>    JakisObiekt = class(KlasaBazowa)
>    strict private
> <snip>
>      class var
>        { Zmienne globalne, wspólne dla wszystkich instancji klasy }
>        LbaInstancji:  Cardinal;
> <snip>
>    end;

Gwoli uzupełnienia: zwane popularnie polami/memberami 
statycznymi w innych językach programowania. 

W fpc za pomocą modifier'a 'static' + dyrektywa:

{$MODE OBJFPC}
{$STATIC ON}

type
   TSomeObject = class
       InstanceCount: integer; static;
   end;

begin
  TSomeObject.InstanceCount := 123;
end.

---

Przy czym nieprawdą jest jakoby:
"To jest zmienna globalna, ale dostępna tylko w obrębie klasy."

Tylko:
"Poziom dostępu jest ściśle zależny od sekcji w której sie ta 
zmienna statyczna znajduje[public, protected, private, strict X, etc],
ale referencnąć można ją tylko via TSomeObject.Something[lub instancję
TSomeObject]".

Więc czy "jest globalna" zależy od sekcji, ściśle to jest ona
statycznie linkowana więc ma uhm "globalny czas życia"[technicznie
jest statycznie linkowana]. ;-).

Chyba że coś nadinterpretowałem w poście Grzegorza, lub to jest
Delphi-Dialect specific. ;-).

-- 
Pozdrawiam,
Łukasz 'Maly' Ostrowski.      http://l3v.pl/
Technical Details
Message-ID: <10ktfo5n375j3.1b0kp9eef10m1.dlg@40tude.net>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.dialog.net.pl!not-for-mail
References: <huas3s$adg$1@news.dialog.net.pl> <60b5.0000083c.4c0d6452@newsgate.onet.pl> <hujtt4$sp0$1@news.dialog.net.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.dialog.net.pl!not-for-mail
From: Łukasz 'Maly' Ostrowski <maly@USUNnemo.pl>
Newsgroups: pl.comp.lang.pascal
Subject: Re: Fpc -- nowe elementy jezyka
Date: Tue, 8 Jun 2010 01:54:32 +0200
Organization: Acme
Lines: 53
Message-ID: <10ktfo5n375j3.1b0kp9eef10m1.dlg@40tude.net>
References: <huas3s$adg$1@news.dialog.net.pl> <60b5.0000083c.4c0d6452@newsgate.onet.pl> <hujtt4$sp0$1@news.dialog.net.pl>
NNTP-Posting-Host: static-78-9-71-129.ssp.dialog.net.pl
Mime-Version: 1.0
X-Trace: news.dialog.net.pl 1275954873 30827 78.9.71.129 (7 Jun 2010 23:54:33 GMT)
X-Complaints-To: abuse@dialog.net.pl
NNTP-Posting-Date: Mon, 7 Jun 2010 23:54:33 +0000 (UTC)
User-Agent: 40tude_Dialog/2.0.15.1
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit