Some updates.
This commit is contained in:
parent
a0b3856c69
commit
c019a5a884
57 changed files with 2026 additions and 0 deletions
9
2015/2015_03/ada/sorting/objects/czlowiek-bialy.adb
Normal file
9
2015/2015_03/ada/sorting/objects/czlowiek-bialy.adb
Normal 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;
|
9
2015/2015_03/ada/sorting/objects/czlowiek-bialy.ads
Normal file
9
2015/2015_03/ada/sorting/objects/czlowiek-bialy.ads
Normal 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;
|
26
2015/2015_03/ada/sorting/objects/czlowiek.adb
Normal file
26
2015/2015_03/ada/sorting/objects/czlowiek.adb
Normal 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;
|
28
2015/2015_03/ada/sorting/objects/czlowiek.ads
Normal file
28
2015/2015_03/ada/sorting/objects/czlowiek.ads
Normal 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;
|
3
2015/2015_03/ada/sorting/objects/czlowieka.ads
Normal file
3
2015/2015_03/ada/sorting/objects/czlowieka.ads
Normal file
|
@ -0,0 +1,3 @@
|
|||
package czlowiek is
|
||||
|
||||
end czlowiek;
|
17
2015/2015_03/ada/sorting/objects/objects.adb
Normal file
17
2015/2015_03/ada/sorting/objects/objects.adb
Normal 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;
|
Loading…
Add table
Add a link
Reference in a new issue