Templates are not virtual. Depending the interface, a different function is called:

import std.stdio;

class ClassA {
    void fun(T)(T a) { writeln("ClassA"); }
}

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

void main() {
    auto cb = new ClassB();
    ClassA ca = cb;

    uint a = 42;
    ca.fun(a);    // calls ClassA.fun
    cb.fun(a);    // calls ClassB.fun
}

Ali

Reply via email to