Possible Duplicate:
How expensive is it to dereference a pointer in C++?
If I've got a pointer to an object, let's say Object *ptr;
, and I want to pass that to a method of the form void foo(Object& obj)
I understand that I need to write:
foo(*ptr);
But why dereference ptr
? Wouldn't it make sense to just pass it foo(ptr);
? I'm worried *ptr
might be making a copy of the original object, or at the least not merely passing to foo
the address to work with.
Can anyone clear this up for me? Is passing *ptr
a potential bottleneck, for code that expects this to behave just as fast as if the function had been void foo(Object *obj);
and called via foo(ptr)
?