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 referencesfor 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 insteadwith the understanding that it might be null