Hocam ben c++ Builder'de program geliştiriyorum,componentleri ortak olması nedeniyle delphi'ye merak sardım şu aralar.Delphi'de pointerlere bakarken bir şey dikkatimi çekti ,internette de biraz araştırdım ama tatmin edici cevaplar bulamadım.Mevzu şu:
Burada standart fonksiyon gösteren pointer örneği var; ama tip tanımlanırken ,yani şu ifadede "type fact=function (x:integer):integer;" bir pointer tipi değil değişken tipi tanımlanıyor fakat kaynaklarda bunun pointer tipi tanımlanması olduğu söyleniyor.o zaman şu kodun çalışmaması lazım ama çalışıyor:
Çünkü Burada hiç pointer yok.Burdan şu sonuç mu çıkıyor pointer kullanıılmadan da değişkenlere tipini belirterek -örneğin: hesap:function (x:integer):integer;- fonksiyon ataması yapabiliriz.ben c++ mantığıyla mı düşünüyorum yoksa bunlar doğru mu ?Burayı yanlış kavramam ciddi hafıza hatalarına sebep olabilir bu yüzden bir arkdaşım beni aydınlatırsa sevinirim. Teşekkürler şimdiden.
type
fact=function (x:integer):integer;
var
Form5: TForm5;
implementation
{$R *.dfm}
function factoriel(x:integer):integer;
begin
if x<=1 then result:=1
else result:=x*factoriel(x-1);
end;
procedure TForm5.Button1Click(Sender: TObject);
var
hesap:^fact;
i:integer;
begin
hesap := @i;
hesap^:=factoriel;
ShowMessage(IntToStr(HESAP^(5)));
end;
Burada standart fonksiyon gösteren pointer örneği var; ama tip tanımlanırken ,yani şu ifadede "type fact=function (x:integer):integer;" bir pointer tipi değil değişken tipi tanımlanıyor fakat kaynaklarda bunun pointer tipi tanımlanması olduğu söyleniyor.o zaman şu kodun çalışmaması lazım ama çalışıyor:
function factoriel(x:integer):integer; begin if x<=1 then result:=1 else result:=x*factoriel(x-1); end; procedure TForm5.Button1Click(Sender: TObject); var hesap: function (x:integer):integer; i: integer; begin hesap:=factoriel; ShowMessage(IntToStr(hesap(5))); end; end.
Çünkü Burada hiç pointer yok.Burdan şu sonuç mu çıkıyor pointer kullanıılmadan da değişkenlere tipini belirterek -örneğin: hesap:function (x:integer):integer;- fonksiyon ataması yapabiliriz.ben c++ mantığıyla mı düşünüyorum yoksa bunlar doğru mu ?Burayı yanlış kavramam ciddi hafıza hatalarına sebep olabilir bu yüzden bir arkdaşım beni aydınlatırsa sevinirim. Teşekkürler şimdiden.
Herhangi bir basit problem, hakkında yeterince toplantı yapılarak, çözümsüz hale getirilebilir.
https://play.google.com/store/apps/developer?id=ONGUN
https://play.google.com/store/apps/developer?id=ONGUN

