comp.lang.ada
 help / color / mirror / Atom feed
From: "Lucretia" <lucretia9@lycos.co.uk>
Subject: Re: Basic Explaination of OO in Ada
Date: 18 Sep 2006 12:37:16 -0700
Date: 2006-09-18T12:37:16-07:00	[thread overview]
Message-ID: <1158608236.142716.178180@h48g2000cwc.googlegroups.com> (raw)
In-Reply-To: <1158593087.194781.250030@e3g2000cwe.googlegroups.com>

Hi,

One thing that (I don't think) is really explained clearly enough is
the idea of *class-wide*. For example a class-wide type is one which
consists of every type in that hierarchy, take this hierarchy:

Shape
  + Circle
  + Polygon
     + Square
     + Triangle

If you were to say Shape'Class, this basically means any type in the
Shape hierarchy, and if you were to say Polygon'Class this means
anything in the Polygon hierarchy (but not including Shape).

Another part of the class-wide is the subprogram, a class-wide
subprogram applies to all types in that hierarchy and cannot be
overridden - it can be overloaded though:

function X(Self : Shape'Class) return Float;

This function applies to Shape, Circle, Polygon, Square, Triangle,
whereas:

function Circumference(Self : Circle'Class) return Float;

Applies onto to the hierarchy rooted at Circle (nothing below it - you
can't pass a Shape to that function).

I found this confusing because the literature isn't (IMO) clear.

Luke.




  parent reply	other threads:[~2006-09-18 19:37 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-09-18 15:24 Basic Explaination of OO in Ada richard.charts
2006-09-18 16:31 ` Georg Bauhaus
2006-09-18 16:43 ` Georg Bauhaus
     [not found] ` <j%zPg.13190$bM.10526@newsread4.news.pas.earthlink.net>
2006-09-18 17:13   ` Javier Miranda
2006-09-18 17:51 ` Robert A Duff
2006-09-18 18:32 ` Gautier
2006-09-18 19:55   ` richard.charts
2006-09-19  3:29     ` Lucretia
2006-09-19  8:49     ` gautier_niouzes
2006-11-20  6:13     ` adaworks
2006-11-24 14:48       ` Marco
2006-11-24 15:15         ` Javier Miranda
2006-09-18 19:37 ` Lucretia [this message]
2006-09-18 20:25 ` Jeffrey R. Carter
2006-09-19  3:32   ` Lucretia
2006-09-19 13:56     ` richard.charts
2006-09-19 14:10       ` Lucretia
2006-09-19 14:23         ` richard.charts
2006-09-19 15:45           ` Dmitry A. Kazakov
2006-09-19 15:31       ` Ludovic Brenta
2006-09-19 15:56         ` Alex R. Mosteo
2006-09-19 16:06           ` Ludovic Brenta
2006-09-19 16:14             ` Alex R. Mosteo
2006-09-20  7:16         ` Maciej Sobczak
2006-09-19 20:45       ` Jeffrey R. Carter
2006-09-19 21:15         ` Hyman Rosen
2006-09-20  7:27           ` Dmitry A. Kazakov
2006-09-19  6:00 ` Martin Krischik
2006-09-19 20:33   ` Jeffrey R. Carter
2006-09-20  6:41     ` Martin Krischik
2006-09-21  1:37       ` 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