Is there any particular reason to disallow multiple "alias this" ?

<code>
import std.stdio;

class A {
}

class B {
}

class C {
        private A a;
        alias a this;
        private B b;
        alias b this;//compile-time error
        
        this() {
                a = new A();
                b = new B();
        }
}

void main() {
        C c = new C();
}
</code>


I can implement "multiple" interfaces and extend "single" base class in 
Java like this:

<code>
class C extends BaseClass implements Interface1, Interface2, ...
</code>

But I can't do it using D. Code like the following does not be compiled.

<code>
class C : BaseClass, Interface1, Interface2, ...
</code>

Is there any particular reason? What's the difference between Java's 
approach and single "alias this"?



Reply via email to