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=-0.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: 103376,90108ed846e3f1bf X-Google-Attributes: gid103376,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news2.google.com!news4.google.com!feeder1-2.proxad.net!proxad.net!feeder2-2.proxad.net!newsfeed.arcor.de!newsspool3.arcor-online.net!news.arcor.de.POSTED!not-for-mail Date: Sat, 28 Feb 2009 13:20:51 +0100 From: Georg Bauhaus Reply-To: rm.tsoh+bauhaus@maps.futureapps.de User-Agent: Thunderbird 2.0.0.19 (Windows/20081209) MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: Why constructing functions is a mess [was Language lawyer question: task activation References: <1dusr7frk73m7.nlsagplge0hk.dlg@40tude.net> <09a7aab3-d105-4a40-b25b-e2824cb12f89@j1g2000yqi.googlegroups.com> <24bdd0df-9554-49de-9c5e-99572c9cdf34@g38g2000yqd.googlegroups.com> <1v0f2pkso7p50.vein84avao5t.dlg@40tude.net> <499ede41$0$32665$9b4e6d93@newsspool2.arcor-online.net> <1lhxmo6l2ypux.bei2ffp1m3e$.dlg@40tude.net> <499f2c59$0$31868$9b4e6d93@newsspool3.arcor-online.net> <1vcaimc8kjj30$.kf3rsd670ebp$.dlg@40tude.net> <1gxn72yzshp07$.6ytqydmmz37u.dlg@40tude.net> In-Reply-To: <1gxn72yzshp07$.6ytqydmmz37u.dlg@40tude.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Message-ID: <49a92c29$0$32670$9b4e6d93@newsspool2.arcor-online.net> Organization: Arcor NNTP-Posting-Date: 28 Feb 2009 13:20:57 CET NNTP-Posting-Host: 65426d37.newsspool2.arcor-online.net X-Trace: DXC=\^3HBDZ1]1Ngj[ZPFj7ehOA9EHlD;3YcB4Fo<]lROoRA^YC2XCjHcbIeRhPW`=oTZMA:ho7QcPOVCm>CHHjcW02FHVE9l12]a]J X-Complaints-To: usenet-abuse@arcor.de Xref: g2news2.google.com comp.lang.ada:4819 Date: 2009-02-28T13:20:57+01:00 List-Id: Dmitry A. Kazakov wrote: > Topic: large system design, information hiding: > > type T (<>) is abstract tagged limited private; > private > type T (...constraints...) is abstract tagged limited record > ... > end record; > > In order to be used in > > type S is new T with ...; > function Create (....) return S; How/Why should this derivation be possible? (Deriving publicly from an abstract limited type with unknown discriminants--to me, the <> signals the intent of the author of T, namely that T should be considered none of our business?) > Remember? Constructor is not function. It never will. See the problem? Assuming C++ has constructors, will your arguments apply in the following examples (just trying to understand): class T { public: virtual void op() = 0; private: T(char constraint) : c(constraint) {} char c; }; class S : public T { public: S() {} }; (Note: no suitable default constructor in T)