On Saturday, 14 January 2017 at 21:55:27 UTC, David  Zhang wrote:
Hello,

Say I have a class, and it overrides a function from its superclass. However, the superclass has two overloaded versions of the same function. My intent is to override only one of the functions, but the second is rendered inaccessible from outside of the class. How can I make the overloaded function visible?

ie:

class ClassA {
    void fun(uint a) {}
    void fun(uint a, float b) {}
}

class ClassB: ClassA {
    void fun(uint a) {}
}

ca.fun(a);       //ok
ca.fun(a, b);    //ok
cb.fun(a);       //ok
cb.fun(a, b);    //function fun not callable with uint and float

I seem to remember something about using aliases to fix this, but I can't find anything about it either way.

class ClassB: ClassA {
  alias fun = super.fun;
  override void fun(uint a) {}
}

Reply via email to