Some updates.

This commit is contained in:
Tomasz Półgrabia 2025-03-09 11:58:55 +01:00
parent a0b3856c69
commit c019a5a884
57 changed files with 2026 additions and 0 deletions

View file

@ -0,0 +1,9 @@
package body czlowiek.bialy is
procedure bialy(This: in out obj_czlowiek) is begin
This.prot.v2 := 2;
-- This.p.v3 := 4; -- błąd dziwny
czlowiek.init(czlowiek.obj(This),3);
end bialy;
end czlowiek.bialy;

View file

@ -0,0 +1,9 @@
package czlowiek.bialy is
type obj_czlowiek is new obj with record
v4: Integer;
end record;
procedure bialy (This: in out obj_czlowiek);
end czlowiek.bialy;

View file

@ -0,0 +1,26 @@
with Ada.Text_IO;
package body czlowiek is
package T_IO renames Ada.Text_IO;
type obj_private is record
v3: Integer;
end record;
procedure proc_private(This: obj) is begin
T_IO.Put_Line("Private");
end proc_private;
procedure init(This: in out obj; val: Integer) is
begin
This.p := new obj_private;
This.p.v3 := 3;
czlowiek.proc_private(This);
end init;
procedure proc_protected(This: obj) is begin
null;
end proc_protected;
end czlowiek;

View file

@ -0,0 +1,28 @@
with Ada.Finalization;
package czlowiek is
type obj_public is tagged record
v1: Integer;
end record;
type obj is new obj_public with private;
procedure init(This: in out obj; val: Integer);
private
type obj_private;
type obj_private_ptr is access obj_private;
type obj_protected is new Ada.Finalization.Controlled with record
v2: Integer;
end record;
type obj is new obj_public with record
prot: obj_protected;
p: obj_private_ptr;
end record;
procedure proc_protected(This: obj);
end czlowiek;

View file

@ -0,0 +1,3 @@
package czlowiek is
end czlowiek;

View file

@ -0,0 +1,17 @@
with czlowiek;
with czlowiek.bialy;
procedure objects is
os1: czlowiek.obj;
os2: czlowiek.bialy.obj_czlowiek;
begin
os1.v1 := 1;
-- os1.p.v3 := 2; -- nie ma dostępu
-- czlowiek.proc_protected(os1); -- nie ma dostępu
os2.v1 := 2;
-- os2.prot.v2 := 3;
czlowiek.init(os1,3);
czlowiek.bialy.bialy(os2);
end objects;