comp.lang.ada
 help / color / mirror / Atom feed
From: Martin Krischik <krischik@users.sourceforge.net>
Subject: Re: "Must instantiate controlled types at library level." Why?
Date: Fri, 14 May 2004 09:13:39 +0200
Date: 2004-05-14T09:13:39+02:00	[thread overview]
Message-ID: <1676457.GMYvKY1ieA@linux1.krischik.com> (raw)
In-Reply-To: pan.2004.05.13.23.37.39.295683@nowhere.net

Freejack wrote:

> On Thu, 13 May 2004 13:18:11 +0200, Martin Krischik wrote:
> 
>> I almost never use pointers in Ada since I can pass 'Class types around
>> as I like.
>> 
>    Huh?
> 
>> Martin
> 
> Alright. I'm not a guru by any stretch of the imagination. But I do get
> around Ada code quite proficiently. This idea of substituting Classes for
> pointers is a bit fuzzy to me. I mean, a pointer is an address. Maybe I
> don't understand Ada Classes as well as I thought.

Simple Mantra: 'Class behaves like String.

If you compare with C/C++: You always have to uses char* pointers since
C/C++ has no equivalent for String.

In C an array is either definite "int X[10]" or you use pointer. "int X[]"
is only another syntax for "char*" since there is no 'First and 'Last in
C/C++. Ada however has indefinite types - so pointers arn't neede here.

Also you use pointers because C/C++ has no "out" or "in out". Ada however
decides itself if call by value or call by reference is needed. So no
pointers needed here as well.

Back to the mantra:

You can't say:

S : String;
C : Tagged_Type'Class;

type S_Array is array (Natural range <>) of String;
type C_Array is array (Natural range <>) of Tagged_Type'Class;

But you can say:

S : String := "Hello!";
C2 : Tagged_Type'Class := C1;

procedure Do_S (Some_S : in out String);
procedure Do_C (Some_C : in out Tagged_Type'Class);

> Classes are addresses 
> too?

No, like Strings they use memory. Actualy in the example above C2 might even
allocate more memory then C1 since C2 as an indefinite type need to keep
track of its size.

With Regards

Martin

-- 
mailto://krischik@users.sourceforge.net
http://www.ada.krischik.com




  reply	other threads:[~2004-05-14  7:13 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-05-11 23:04 "Must instantiate controlled types at library level." Why? Peter C. Chapin
2004-05-12  1:03 ` Jeffrey Carter
2004-05-12 10:47   ` Peter C. Chapin
2004-05-12 11:25     ` Ludovic Brenta
2004-05-12 14:41       ` Martin Krischik
2004-05-13  2:20       ` Peter C. Chapin
2004-05-12 11:55     ` Martin Krischik
2004-05-13  2:59       ` Peter C. Chapin
2004-05-13  7:10         ` Martin Krischik
2004-05-13 10:36           ` Peter C. Chapin
2004-05-13 11:18             ` Martin Krischik
2004-05-13 22:27               ` Peter C. Chapin
2004-05-13 22:54               ` Freejack
2004-05-14  7:13                 ` Martin Krischik [this message]
2004-05-14 13:50                   ` Xenos
2004-05-14 17:27                     ` Georg Bauhaus
2004-05-14 17:58                       ` Xenos
2004-05-14 18:49                     ` Martin Krischik
2004-05-14 19:40                       ` Xenos
2004-05-14 22:47                         ` Ludovic Brenta
2004-05-15  8:34                           ` Martin Krischik
2004-05-16  2:55                           ` Hyman Rosen
2004-05-16 13:48                             ` Ludovic Brenta
2004-05-17  2:30                               ` Hyman Rosen
2004-05-17  5:39                                 ` Martin Dowie
2004-05-17  7:48                                   ` Ludovic Brenta
2004-05-17 15:01                                     ` Hyman Rosen
2004-05-17 16:31                                       ` Georg Bauhaus
2004-05-17 17:40                                         ` Hyman Rosen
2004-05-17 19:17                                           ` Georg Bauhaus
2004-05-17  6:24                                 ` Martin Krischik
2004-05-17 19:48                                   ` James Kanze
2004-05-18  6:27                                     ` Martin Krischik
2004-05-17 12:33                                 ` Dmitry A. Kazakov
2004-05-17 13:46                                   ` Martin Krischik
2004-05-17 15:03                                     ` Dmitry A. Kazakov
2004-05-17 16:02                                   ` Alexander E. Kopilovich
2004-05-18  7:48                                     ` Dmitry A. Kazakov
2004-05-19  1:20                                       ` Alexander E. Kopilovich
2004-05-19  9:59                                         ` Dmitry A. Kazakov
2004-05-19 12:38                                           ` Hyman Rosen
2004-05-19 13:28                                             ` Dmitry A. Kazakov
2004-05-19 13:09                                           ` Georg Bauhaus
2004-05-19 13:44                                             ` Hyman Rosen
2004-05-19 14:17                                               ` Dmitry A. Kazakov
2004-05-19 14:15                                             ` Dmitry A. Kazakov
2004-05-21 11:39                                               ` Georg Bauhaus
2004-05-21 20:33                                                 ` Dmitry A. Kazakov
     [not found]                                                   ` <c8mkor$rlq$1@a1-hrz.uni-duisburg.de>
2004-05-23  1:28                                                     ` Hyman Rosen
2004-05-23  8:55                                                     ` Dmitry A. Kazakov
2004-05-24 11:38                                                       ` Georg Bauhaus
2004-05-24 13:57                                                         ` Dmitry A. Kazakov
2004-05-24 14:40                                                           ` Georg Bauhaus
2004-05-25  8:32                                                             ` Dmitry A. Kazakov
2004-05-25 15:47                                                               ` Georg Bauhaus
     [not found]                                   ` <URJ8Eg0vzF@VB1162.spb.edu>
2004-05-17 16:50                                     ` Marius Amado Alves
2004-05-18  8:27                                       ` Dmitry A. Kazakov
2004-05-15 17:20                     ` Pascal Obry
2004-05-13 19:33             ` Randy Brukardt
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox