>Not really an OO thing. All programming "knows" what called it because the return address (at least used to be) was placed on the stack. In terms of OO, it's the compiler that resolves the references and acts accordingly.
There I will have to disagree with you - the return address only tells you where the calling code is - it gives no (direct) information about who or what did the calling. In terms of OO it is not necessarily the compiler that resolves the references, very often it is a run-time decision - hence the power of OO & abstract classes.
Mike
"I can live with doubt and uncertainty and not knowing. I think it is much more interesting to live not knowing than to have answers that might be wrong." - Richard Feynman