Accessing a function within an object's superclass from the outside

Ali Çehreli via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sat Jan 14 15:31:36 PST 2017


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



More information about the Digitalmars-d-learn mailing list