Usually, you pass const reference parameters to functions like this:
class OneKind;class AnotherKind;class Example{ public: Example( const OneKind &inParam ); // conversion operator Example( const Example &inOriginal ); // copy constructor const Example &operator=( const Example& inRhs ); // assignment operator void MemberFunc( const AnotherKind &inParam );};
There are many reasons for passing const references?for performance and to preserve polymorphism, as well as to indicate that the object is guaranteed to exist. But if you might be passing a non-existent object, pass a pointer instead?with the understanding that it might be null