#include class Something { private: int mNothing; public: Something(); Something( int N ); Something( const Something& otherThing ); ~Something(); const Something& operator=( const Something& otherThing ); void Print() const; }; Something::Something() { mNothing = 0; } Something::Something( int N ) { mNothing = N; } Something::Something( const Something& otherThing ) { mNothing = otherThing.mNothing; } Something::~Something() { } const Something& Something::operator=( const Something& otherThing ) { mNothing = otherThing.mNothing; return( *this ); } void Something::Print() const { cout << mNothing; } void ThisFunction( Something thisThing ) { cout << "This thing has value "; thisThing.Print(); cout << endl; } void ThatFunction( const Something& thatThing ) { Something theOtherThing = thatThing; cout << "That thing has value "; thatThing.Print(); cout << endl; cout << "The other thing has value "; theOtherThing.Print(); cout << endl; } int main() { Something a; Something b( 17 ); Something c = b; ThisFunction( a ); ThatFunction( b ); return( 0 ); }