Article View: pl.comp.lang.pascal
Article #93019Re: Fpc -- nowe elementy jezyka
From: Grzegorz Skoczylas
Date: Mon, 07 Jun 2010 23:03
Date: Mon, 07 Jun 2010 23:03
70 lines
3338 bytes
3338 bytes
W dniu 2010-06-07 23:27, webmajsterek@poczta.onet.pl pisze:
>> W dniu 2010-06-04 13:30, webmajsterek@poczta.onet.pl pisze:
>>> widze w jednym z komponentów od lazarusa w deklaracji clasy taki kod
>>>
>>> strict protected
>>>
>>> co daje taka konstrukcja ??
>>
>> Standardowa deklaracja *protected* powoduje, że z objętych nią elementów
>> mogą korzystać klasy potomne oraz cały kod będący w tym samym module (unit).
>>
>> Z elementów objętych deklaracją *strict protected* mogą korzystać
>> wyłącznie klasy potomne.
>>
>> Tak jest w Delphi. Sądzę, że we FPC jest tak samo.
>>
>> W Delphi jest również *strict private* - działa analogicznie, tzn.
>> jeżeli coś jest *private* to można z tego korzystać w całym kodzie w tym
>> samym module, w którym jest zdefiniowana klasa. Natomiast *strict
>> private* powoduje, że można z tego korzystać wyłącznie w kodzie klasy.
>>
>
> a właśnie to mnie dziwiło że w pascalu niby pole prywatne ( hermetyzacja ) a
> jednak z danego unitu inny fragment kodu może modyfikować te pola .
Czasem to jest wygodne.
W C++ w tym celu wprowadzono funkcje zaprzyjaźnione.
> a widze jeszcze ze prze FPC 2.5 przechodzi taka konstrukcja
>
> type jakis_objekt=class()
>
> var jakie_spole:typ_danych;
> end;
>
> zmienia cos dodanie "var" w tak zdefiniowanym polu ??
Chyba tylko porządkuje sposób zapisu.
W Delphi wprowadzili również stałe definiowane wewnątrz klasy. W takim
razie trzeba było jakoś odróżnić stałe od zmiennych. Przypuszczam, że
w FPC jest analogicznie.
Można też użyć "class var". To jest zmienna globalna, ale dostępna tylko
w obrębie klasy.
Na przykład:
type
JakisObiekt = class(KlasaBazowa)
strict private
const
{ Stałe dostępne tylko w kodzie klasy }
MaxLbaInstancji = 10;
class var
{ Zmienne globalne, wspólne dla wszystkich instancji klasy }
LbaInstancji: Cardinal;
var
{ Zestaw zmiennych oddzielny dla każdej instancji obiektu }
WlasnaZmienna: JakisTyp;
{ konstruktory, destruktor, definicje metod itd. }
end;
--
Pozdrawiam,
Grzegorz Skoczylas
http://gskoczylas.rekord.pl
----------------------------------------------
Technical Details
Message-ID:
<hujtt4$sp0$1@news.dialog.net.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.dialog.net.pl!not-for-mailReferences:
<huas3s$adg$1@news.dialog.net.pl> <60b5.0000083c.4c0d6452@newsgate.onet.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.dialog.net.pl!not-for-mail From: Grzegorz Skoczylas <gskoczylas@kasuj-to.rekord.pl> Newsgroups: pl.comp.lang.pascal Subject: Re: Fpc -- nowe elementy jezyka Date: Tue, 08 Jun 2010 01:03:55 +0200 Organization: Dialog Net Lines: 70 Message-ID: <hujtt4$sp0$1@news.dialog.net.pl> References: <huas3s$adg$1@news.dialog.net.pl> <60b5.0000083c.4c0d6452@newsgate.onet.pl> NNTP-Posting-Host: 78.8.104.124 Mime-Version: 1.0 X-Trace: news.dialog.net.pl 1275951844 29472 78.8.104.124 (7 Jun 2010 23:04:04 GMT) X-Complaints-To: abuse@dialog.net.pl NNTP-Posting-Date: Mon, 7 Jun 2010 23:04:04 +0000 (UTC) User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; pl; rv:1.8.1.23) Gecko/20090812 Thunderbird/2.0.0.23 Mnenhy/0.7.6.666 In-Reply-To: <60b5.0000083c.4c0d6452@newsgate.onet.pl> X-Antivirus: avast! (VPS 100607-2, 2010-06-07), Outbound message X-Antivirus-Status: Clean Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit