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