How do you do a typeid(obj) to get the most derived class that it is, or string?

Ali Çehreli via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Feb 1 22:36:24 PST 2016


On 02/01/2016 10:20 PM, Enjoys Math wrote:
>
> class A {
>
> }
>
> class B : A {
>
> }
>
> class C : B {
>
> }
>
> auto b = new B();
>
> typeid(b) == "B"
>
> ?
>
> Thanks.

class A {

}

class B : A {

}

class C : B {

}

void main() {
     auto b = new B();

     assert(typeid(b) == typeid(B));

     // Or, if you have the type without an object (e.g. in templated code)
     assert(typeid(typeof(b)) == typeid(B));
}

Ali



More information about the Digitalmars-d-learn mailing list