On Sunday, 3 May 2015 at 17:46:54 UTC, Meta wrote:
This is not really doable right now in D. You can forward the function calls to a and b easily enough, but you can't inherit from more than one class. Once the multiple alias this patch gets merged you will be able to do this in D.

On Sunday, 3 May 2015 at 18:17:26 UTC, Adam D. Ruppe wrote:
I'd make class A and class B into mixin templates instead.

mixin template A {
   string a() { return "foo"; }
}

mixin template B {
   string b() { return "bar"; }
}

class C {
   mixin A;
   mixin B;
}

If you still need class A and class B, just make a class that mixes in the template for them too.


Since the C++ methods aren't virtual, I imagine you don't really need a base class for them, but if you do want a virtual base class, make interfaces and inherit from as many of them as you need.

Thanks.

On Sunday, 3 May 2015 at 20:03:00 UTC, QAston wrote:
If you want to learn a language properly, translating the idioms
directly from what you already know is a bad approach. You're
going to be frustrated that something was easy (to you) in your
old language and the new one is weird and different than the old
one. Also - results are often suboptimal.

I've seen this happen too many times to not warn you, but if you
just want to carry over and you don't care about learning or
quality of result then please carry on.

At the moment, I do not do a complete study of the D, so the quality is not important to me. Start a complete study of D, I plan a little later.

Reply via email to