4 Deep assignment
In the example in section 3, we should also define a deep-copy assignment operator:
1class Y
2{ 3 char *pMessage;
// pointer to a message 4 protected:
5 void clone(
const Y &y);
6 public:
7 Y(
void)
{ pMessage = 0;
} 8 Y(
const Y &y);
9 ˜Y(
void)
{ if (pMessage)
delete pMessage;
} 10 Y
operator = (
const Y &y);
11 void setMessage(
const char *);
12 const char *getMessage(
void)
const;
13};
14 15Y Y::
operator = (
const Y &y)
16{ 17 clone(y);
18 return y;
19}