Figure 4: A "shared memory" CString
class SCString : public CObject { public: void *operator new(size_t size); void operator delete(void *ptr); ... }; void *SCString::operator new(size_t size) { return shared_malloc(size); } void SCString::operator delete(void *ptr) { shared_free((char *)ptr); }