Вы уже инкапсулировали TinyXml document
- теперь вам просто нужно делегировать его туда, где вы хотите, чтобы показать только подмножество функций, которые он предоставляет.
Заменить это
void XMLDocument::AddNode(XMLNode& node) // This function does over what XMLNode class is actually for... I just want to add the node to the XMLDocument
{
std::string val = node.GetNodeName();
TiXmlElement* el = new TiXmlElement(val.c_str());
TiXmlText * txt = new TiXmlText(node.GetNodeValue().c_str());
el->LinkEndChild(txt);
document.LinkEndChild(el);
}
с этим
void XMLDocument::AddNode(XMLNode& node)
{
document.AddNode(node);
}
Это вполне законно, так как вы не хотите показывать полный TiXmlDocument
клиентам вашего класса.Подумайте, как std :: queue и std :: stack действуют как адаптеры для нижележащих контейнеров.