comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Strange error message
Date: Sun, 1 Jun 2014 13:11:08 +0200
Date: 2014-06-01T13:11:08+02:00	[thread overview]
Message-ID: <g4o4rbacbb9z.tweckzb7g3gq$.dlg@40tude.net> (raw)
In-Reply-To: 33e17033-615d-43d4-8b47-9357c8875a10@googlegroups.com

On Sun, 1 Jun 2014 03:24:02 -0700 (PDT), Charly wrote:

> when I defined a class hierarchy I encountered a problem, that I could reduce 
> to the following few lines:
> 
> This version compiles without problems:
> -----------------
> package Test is
> 
>    type Base is tagged private;
>    function Create return Base;
> 
>    type High is new Base with private;

You must override Create for High, *always*.
 
> Why do I have to overide the function Create for type High.
> I don't see the necessity.
> 
> Btw. I'm using GNAT GPL 2014 but the same happens with 2013 version.

I believe it was a recent hack (wrongly) added to Ada that you need not to
override primitive operations returning the tagged type when the derived
type does not actually extend. I don't know if making that public or
privately changes anything. You did that privately.

It is an awful idea in any form. You should always override such
operations, and all out-operations, because inheriting them is a priori
unsafe.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

  reply	other threads:[~2014-06-01 11:11 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-01 10:24 Strange error message Charly
2014-06-01 11:11 ` Dmitry A. Kazakov [this message]
2014-06-01 12:50   ` Charly
2014-06-01 13:54     ` Simon Wright
2014-06-01 21:18 ` Robert A Duff
2014-06-02  7:47   ` Dmitry A. Kazakov
2014-06-02 13:49     ` Robert A Duff
2014-06-02 14:55       ` Dmitry A. Kazakov
2014-06-02 17:24         ` Robert A Duff
2014-06-02 18:39       ` Shark8
2014-06-02 19:56   ` Randy Brukardt
  -- strict thread matches above, loose matches on Subject: below --
2002-11-13 10:36 strange " evangeli
2002-11-13 15:05 ` Stephen Leake
replies disabled

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