in c++
class bar { int i; char b; float d; }; void foo ( bar arg ); void foo ( bar &arg ); void foo ( bar *arg );
this i
If you consider that it's good practice to validate pointer parameters before using them then, yes, pointers introduce extra overhead since references don't require such testing.