Fig01_19.cpp - MemoryCell class template without separation #include #include "mystring.h" /** * A class for simulating a memory cell. */ template class MemoryCell { public: explicit MemoryCell( const Object & initialValue = Object( ) ) : storedValue( initialValue ) { } const Object & read( ) const { return storedValue; } void write( const Object & x ) { storedValue = x; } private: Object storedValue; }; // OOPS: I forgot to put a + operator in the string class. // So it's here: string operator+( const string & lhs, const string & rhs ) { string result = lhs; return result += rhs; } int main( ) { MemoryCell m1; MemoryCell m2( "hello" ); m1.write( 37 ); m2.write( m2.read( ) + " world" ); cout << m1.read( ) << endl << m2.read( ) << endl; return 0; }