Determine object identity from a reference to a superclass
<p>I have the following pair of functions:</p>

<pre><code>void RegisterSink( ISink &amp; Sink )
void UnregisterSink( ISink &amp; Sink )
</code></pre>

<p>Where ISink is an abstract base class. Internally, I would like to store pointers to the sinks in an std::set. When a sink is unregistered, i simply search for the pointer in my set, and remove it. My question is, is there any way, that taking the adress of the parameter Sink would yield different results, although the same object was passed as a parameter. I know, that pointers can change when casting in certain multiple inheritance szenarios, but what about this situation?</p>

<p>Thanks in advance!</p>
