You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

45 lines
1.2 KiB
C++

Fig01_19.cpp - MemoryCell class template without separation
#include <iostream.h>
#include "mystring.h"
/**
* A class for simulating a memory cell.
*/
template <class Object>
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<int> m1;
MemoryCell<string> m2( "hello" );
m1.write( 37 );
m2.write( m2.read( ) + " world" );
cout << m1.read( ) << endl << m2.read( ) << endl;
return 0;
}