I have a C++ API design/best practices question that I'd like some thoughts on. I have an object representing some hierarchical data that I've deserialized out of XML (modification isn't an issue here ...