I wanted to reply back and mention that while looking over the errata for the next chapter I found an errata entry for the author's example code that I posted here:


731 Error in Code
Default constructor (Name::Name) allocates a one-byte array so that the destructor can safely delete[] it.

However this is unnecessary provided the default constructor initialises the array members to 0. This is because the delete[] operator will do nothing if the pointer is null (0).
Thanks again to everyone for their help.