The question comes out when building a small set of class to a plotting package. Although the question holds independent of my particular case, I describe what I have in hands to put some context:
The scenario is a "datasource" class containing numpy vectors; the "datasource" class adds metadata around the (data) vectors. The data source object is the one to go inside my "plot" class/object; the "plot" object ask information (metadata and data) to "datasource", but if I want to modify a data point or a metadata value "plot" has nothing to do with it, "datasource" deals with all that is yours and then just communicate "plot" that he needs to refresh.
So, stating the question is clearer words: when I pass an object to a function or to another object (to hold it as its member), am I passing a pointer or a copy?
[]