How can I make typeof(this) return the type of a calling derrived class from a function in a base class?

Lester via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri Jun 16 06:46:14 PDT 2017


If I have something like the following:

class A {
     void foo(){ writeln(typeof(this)); }
     ...
}

class B : A {
     ...
}

And I want the results:

A a = new A;
B b = new B;
a.foo(); // prints "A"
b.foo(); // prints "B"

How would I go about doing that? At the moment b.foo() is 
printing "A".




More information about the Digitalmars-d-learn mailing list