Home

* deadguysfrom@gmail.com:
> Ive got two classes in the same class hierarchy, and I want to find
> their common ancestor. Any idea how to do this?
>
> class A {};
> class B : public A {};
> class C : public B {};
> class D : public B {};
>
> I have pointers to C and D, I want pointers to B.

See the reply by Ian Collins else-thread.

If your enquiry is of a more academic, theoretical nature:

You can check whether the classes /have/ a common ancestor by using
static_cast, possibly combined with SFINAE.

You can go the opposite way, finding a pointer to the complete object
(of the most derived class), by using dynamic_cast<void*>, provided the
pointer you have is a pointer to an object of polymorphic class. This
is sometimes useful, e.g. for hashing. But it doesn't tell you what the
most derived class is, except you can get a run-time description.

You can not enumerate the class hierarchy by means of only language and
standard library functionality.

Cheers, & hth.,

- Alf

--
A: Because it messes up the order in which people normally read text.
Q: Why is it such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?

previous
next

Free Online Dating Personals - Free Dates Agency
Re: OCBC connection
Re: Python Database Apps
Re: Simple elementtree question
Re: Very simple question
Mam Marzenie
Akogo
Fundacja Avalon
Fundacja Hobbit
Rodzic Po Ludzku