From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM autolearn=unavailable autolearn_force=no version=3.4.4 X-Received: by 2002:a0c:ed32:: with SMTP id u18mr25371493qvq.2.1579077133460; Wed, 15 Jan 2020 00:32:13 -0800 (PST) X-Received: by 2002:a05:6808:4c7:: with SMTP id a7mr20116608oie.83.1579077133216; Wed, 15 Jan 2020 00:32:13 -0800 (PST) Path: eternal-september.org!reader01.eternal-september.org!feeder.eternal-september.org!news.linkpendium.com!news.linkpendium.com!news.snarked.org!border2.nntp.dca1.giganews.com!nntp.giganews.com!g89no10536877qtd.0!news-out.google.com!w29ni1237qtc.0!nntp.google.com!g89no10536869qtd.0!postnews.google.com!google-groups.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Wed, 15 Jan 2020 00:32:13 -0800 (PST) Complaints-To: groups-abuse@google.com Injection-Info: google-groups.googlegroups.com; posting-host=46.9.10.14; posting-account=bPTmZAoAAAC_6HP9XLKB9aAAxBa6BuOR NNTP-Posting-Host: 46.9.10.14 User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <755521b8-d0a8-41bd-b547-da1136e3b8e1@googlegroups.com> Subject: How to stop inheritance in a good way? From: reinert Injection-Date: Wed, 15 Jan 2020 08:32:13 +0000 Content-Type: text/plain; charset="UTF-8" Xref: reader01.eternal-september.org comp.lang.ada:57843 Date: 2020-01-15T00:32:13-08:00 List-Id: Assume I define a tagged record (or interface) + derived types: type int1_t is interface; function A(x : int1_t) return Integer is abstract; type object1_t is abstract new int1_t with private; function A(x : object1_t) return Integer; function B(x : object1_t) return Integer; type object2_1_t is new object1_t with private; function C(x : object2_1_t) return Integer; type object2_2_t is new object1_t with private; function D(x : object2_2_t) return Integer; and I want object2_2_t *not* to inherit the function B (from type object1_t). I can make a dummy function B for object2_2_t (to override), but is it a more elegant/proper way? Or I here somehow break the concept of inheritance and enter a "dead end" ? reinert