From: dromy@isdn.net.il (Uri)
Subject: constraint error with tagged type
Date: 23 Feb 2003 04:31:50 -0800
Date: 2003-02-23T12:31:50+00:00 [thread overview]
Message-ID: <5e59165b.0302230431.2a482db7@posting.google.com> (raw)
Hello,
I am trying to write a program that create polygons
I created a package called 'shapes':
-- shapes.ads
package shapes is
type point is record
X, Y : float;
end record;
type shape is abstract tagged null record;
... some function dealing with shape ...
type shape_ptr is access all shape'CLASS;
type Polygon_Points is array (integer range <>) of point;
type polygon(Edges : integer) is new shape with record
vertex : Polygon_Points (1..Edges);
end record;
type polygon_ptr is access all polygon'CLASS;
... some function dealing with polygon ...
function make_polygon(Point_Array : Polygon_Points)
return polygon_ptr;
procedure put_values (poly : out polygon;
Pt_Array : Polygon_Points);
private
... some private function ...
end shapes;
--------------------------------------------------------------------------------
-- shapes.adb
package body shapes is
... some finctions ...
function make_polygon(Point_Array : Polygon_Points)
return
polygon_ptr is
-- create a polygon
This_Shape : polygon_ptr := new polygon(Point_Array'LENGTH);
begin
put_values(This_Shape.all, Point_Array);
return This_Shape;
end make_polygon;
procedure put_values (poly : out polygon;
Pt_Array : Polygon_Points) is
-- put values in a polygon
begin
for I in Pt_Array'RANGE loop
poly.vertex(I) := Pt_Array(I);
end loop;
end put_values;
end shapes;
I tried to create a polygon in my main program:
-- main.adb
with shapes;
use shapes;
procedure main is
shape_array : array (1..4) of shape_ptr;
begin
-- create a polygon
... blah, blah, blah ...
shape_array(3) := shape_ptr(make_polygon (((0.0, 0.0),
(0.0, 3.0),
(4.0, 0.0),
(4.0, 3.0))));
... blah, blah, blah ...
end main;
but when I ran it I got a CONTRAINT_ERROR, while using the debuger I
got something that looks like ____gant_malloc, but I don't understad
why the program can't create an array of points with only 4 members.
Please tell me what I did wrong.
next reply other threads:[~2003-02-23 12:31 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-02-23 12:31 Uri [this message]
2003-02-23 13:39 ` constraint error with tagged type David C. Hoos, Sr.
2003-02-24 8:58 ` Uri
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox