comp.lang.ada
 help / color / mirror / Atom feed
From: "Yannick Duchêne (Hibou57)" <yannick_duchene@yahoo.fr>
Subject: Re: Overring function and its returned type
Date: Fri, 09 Nov 2012 10:14:32 +0100
Date: 2012-11-09T10:14:32+01:00	[thread overview]
Message-ID: <op.wnh1aik1ule2fv@cardamome> (raw)
In-Reply-To: 1vej4u29b8e4z$.289wazkl31wg$.dlg@40tude.net

Le Fri, 09 Nov 2012 09:24:18 +0100, Dmitry A. Kazakov  
<mailbox@dmitry-kazakov.de> a écrit:

> On Fri, 09 Nov 2012 08:13:23 +0100, Yannick Duchêne (Hibou57) wrote:
>
>>            overriding
>>            function F
>>              (E : T)
>>               return R'Class -- Not overriding :-(
>>               is abstract;
>
> What is this? "overriding" + "abstract" does not make sense.

Overriding sometime do nothing, just remind something, recall an inherited  
definition explicitly. Not the same, but a bit comparable to subtyping  
used for type renaming (except I hate the latter and rather like the  
former).

Overriding may also be used to add a postcondition or replace a class wide  
precondition by another.

I you prefer, you can instead think of `P3.F` returning `P3.R'Class`  
instead of `P1.R'Class`, which would be overriding in the strict way you  
expect.

> In any case it is the default. When you do nothing, you get F through
> inheritance and it is abstract when the parent's F was.

I know, but sometime you want something more explicit.

> Ada's declarations are not idempotent, in the sense that you cannot  
> repeat
> them like you could in C++. So "F ... is abstract" always
> overloads/conflicts.

I don't get conflict when it happens I do it, it works fine.

> P.S. They should really have used the syntax with the keyword  
> "overriding"
> trailing behind "is" rather than preceding "function/procedure."

Matter of taste. Personally, it happens I think I would have preferred  
“new” instead of “not overriding”, but I don't mind too much. That's to be  
added to the list of tiny things which may be nice, but not required.


-- 
“Syntactic sugar causes cancer of the semi-colons.” [1]
“Structured Programming supports the law of the excluded muddle.” [1]
[1]: Epigrams on Programming — Alan J. — P. Yale University



  reply	other threads:[~2012-11-16  9:09 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-09  7:13 Overring function and its returned type Yannick Duchêne (Hibou57)
2012-11-09  7:22 ` Yannick Duchêne (Hibou57)
2012-11-09  8:24 ` Dmitry A. Kazakov
2012-11-09  9:14   ` Yannick Duchêne (Hibou57) [this message]
2012-11-09 13:11     ` Dmitry A. Kazakov
2012-11-09 21:36       ` Yannick Duchêne (Hibou57)
2012-11-09 19:24   ` Adam Beneschan
2012-11-09 19:34 ` Adam Beneschan
2012-11-09 22:00   ` J-P. Rosen
2012-11-09 22:30     ` Yannick Duchêne (Hibou57)
2012-11-09 19:57 ` sbelmont700
2012-11-09 21:10   ` Yannick Duchêne (Hibou57)
2012-11-09 21:56     ` sbelmont700
2012-11-10  0:28     ` Yannick Duchêne (Hibou57)
2012-11-10  2:35       ` Yannick Duchêne (Hibou57)
2012-11-15 15:13   ` Peter C. Chapin
2012-11-16 10:40     ` Maciej Sobczak
2012-11-16 12:39       ` Peter C. Chapin
2012-11-16 15:27         ` Maciej Sobczak
2012-11-16 17:29           ` Peter C. Chapin
2012-11-17  4:16           ` Yannick Duchêne (Hibou57)
2012-11-17 19:11             ` Robert A Duff
2012-11-18 14:53               ` AdaMagica
2012-11-19  8:41                 ` Yannick Duchêne (Hibou57)
2012-11-19 13:04                   ` AdaMagica
2012-11-19 15:19                     ` Dmitry A. Kazakov
2012-11-19 23:42                   ` Randy Brukardt
2012-11-10  7:55 ` Randy Brukardt
2012-11-11  1:02   ` Yannick Duchêne (Hibou57)
replies disabled

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