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=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,20144c9b38aef82d X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news2.google.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: "Alex R. Mosteo" Newsgroups: comp.lang.ada Subject: Re: About 0Y interfaces Date: Tue, 18 Oct 2005 16:34:08 +0200 Message-ID: <435507E0.7020401@mailinator.com> References: <4354EF40.9010906@mailinator.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Trace: individual.net vJXCu66UNw5g0GDvGY0hJgoS0JnHQwLTORiPB30aY8YGGVBFw= User-Agent: Mozilla Thunderbird 1.0.7 (X11/20051013) X-Accept-Language: en-us, en In-Reply-To: Xref: g2news1.google.com comp.lang.ada:5772 Date: 2005-10-18T16:34:08+02:00 List-Id: Dmitry A. Kazakov wrote: > On Tue, 18 Oct 2005 14:49:04 +0200, Alex R. Mosteo wrote: > > >>I hope someone can clarify some aspects of interfaces to me. I've read >>the description in several places but there are some things I'm not sure >>about. >> >>Firstly, interfaces are purely abstract, right? There's no way to >>provide a default/partial implementation except creating an object type >>which implements that interface. >> >>Secondly, we can create an object type which implements two or more >>interfaces. But I guess there's no multiple inheritance from classes, so >>you couldn't use two implementations of two different interfaces >>directly when creating a new type. Is this right? You'd need to use, for >>example, member objects and use proxy calls. > > > I think the answer depends on what is meant under "implementation": I was refering to implementation of the primitive operations. > 1. Implementation of the values > (data implementation) I'm not sure what this means. I'd say that you're not refering to data initialization, since one can't provide record definition for an interface? > 2. Implementation of the primitive operations > (type interface implementation) This is what I had in mind. Let's say for example that you want a primitive operation to always make a dispatching call on another operation. You can't model this in the interface, right? > 3. Implementation of class-wide operations > (class interface implementation) I don't see any issue here. Just provide the subprograms you consider necessary taking classwide objects?