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 void setMessage(
const char *);
11 const char *getMessage(
void)
const;
12};
13 14void Y::clone(
const Y &y)
15{ 16 if (pMessage)
delete pMessage;
17 pMessage =
new char[strlen(y.pMessage)+1];
18 strcpy(pMessage, y.pMessage);
19} 20 21Y::Y(
const Y &y)
22{ 23 clone(y);
24}