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); 
}