www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Derive from interface

reply Michelle Long <HappyDance321 gmail.com> writes:
Since D does not support multiple inheritance, is there any way 
to effectively achieve this?


class A;
class B;

class C : A, interface!B;

Then it is as if I have done


class A;
interface iB;
class B : iB;

class C : A, iB;

But I can then do

C c = new B;

(but since I can't make B inherit iB, this is impossible)
Mar 25 2019
parent Daniel Kozak <kozzi11 gmail.com> writes:
It depends on what you want. But you can always use composition instead of
inheritance for B. I have been  using things like alias this, mixin and
ufcs to achive multiple iheritence and it works ok for me.

On Mon, Mar 25, 2019 at 10:40 PM Michelle Long via Digitalmars-d-learn <
digitalmars-d-learn puremagic.com> wrote:

 Since D does not support multiple inheritance, is there any way
 to effectively achieve this?


 class A;
 class B;

 class C : A, interface!B;

 Then it is as if I have done


 class A;
 interface iB;
 class B : iB;

 class C : A, iB;

 But I can then do

 C c = new B;

 (but since I can't make B inherit iB, this is impossible)
Mar 25 2019