Find out most derived class in base class
div0
div0 at sourceforge.net
Fri Nov 19 13:37:45 PST 2010
On 19/11/2010 21:22, Jonathan M Davis wrote:
At runtime, the runtime type info for classes forms a DAG.
>>
>> As D only allows single inheritance it should be trivial to find the
>> most derived class, though the runtime doesn't currently offer a
>> function for this.
>
> Just because an object is able to know what its actual type is - or even its
> base classes - does not mean that you could ask it what other types exist which
> are derived from one of its base types or its exact type. Sure, D definitely
> _could_ provide the necessary type information at runtime (C# and Java do that
> sort of thing - which is why thy can have runtime reflection), but it doesn't. At
> best, you can get information on the types of a particular object from that
> object, not the types which exist in general.
>
> - Jonathan M Davis
So just ignore the bit about dynamic cast completely then and repeat
your first incorrect assertion.
Yes D and C++ do provide a limited amout of runtime type information.
It's called RTTI surprisingly enough. *cough*
Dynamic cast, *explicitly* asks at *runtime* if some base class can be
converted to a *more derived* class.
You *can not* do that unless base classes know about the classes which
*inherit from* them.
--
My enormous talent is exceeded only by my outrageous laziness.
http://www.ssTk.co.uk
More information about the Digitalmars-d-learn
mailing list