typeof(this) and subclasses
foo at bar.com
Sat Aug 12 14:11:39 PDT 2006
Serg Kovrov wrote:
> Hello D-people =)
> Is there a way to get type of subclass in method defined in superclass,
> but called in subclass?
> Here a class hierarchy:
>> class Foo
>> static typeof(this) create()
>> // ... some init code
>> return new typeof(this)(init);
>> class FooBar : Foo
>> /* FooBar doesn't overriding create() */
> and I'd like to create them as follows:
>> auto f = Foo.create(); // f is instance of Foo
>> auto b = FooBar.create(); // b should be instance of FooBar
> But, because of 'typeof(this)' appears to be evaluated where it defined
> instead of where it called (sorry for possible misuse of terminology,
> but I hope you got my idea), 'b' is type of 'Foo' instead of desired
I suspect the "typeof(this)" is evaluated statically, at compile time.
You might as well write "Foo" instead?
More information about the Digitalmars-d-learn