I\'m writing some code involving inheritance from a basic ref-counting pointer class; and some intricacies of C++ popped up. I\'ve reduced it as follows:
Suppose I h
- does pa point to a valid A object?
- does pb point to a valid B object?
Yes, the C* gets converted so that pa and pb point to the correct addresses.
- does pa == pb ?
No, usually not. There can't be an A object and a B object at the same address.
Furthermore, does
- pc == (C*) pa ?
- pc == (C*) pb ?
The cast converts the pointers back to the address of the C object, so both equalities are true.