TinyXml友员类的复习

来源:互联网 发布:微盘交易源码下载 编辑:程序博客网 时间:2024/05/22 04:37
0x00. 遇到问题
TiXmlNode 不提供节点属性查询,跟进代码查看有friend class TiXmlElement;
友员类,忘记怎么玩了╮(╯▽╰)╭。

0x01. 将代码抓取出来

class TiXmlNode : public TiXmlBase{friend class TiXmlDocument;friend class TiXmlElement;}class TiXmlElement{}


A.一个段子轻松记住友元类之间的关系!(′▽′)ψ
  甲愿意把甲的秘密告诉乙,但是乙不见得愿意把乙自己的秘密告诉甲。
  推导出来:TiXmlElement可以访问TiXmlNode,但TiXmlNode不可以访问TiXmlNode

0x02.实验
(′▽′)ψ 最后在tinyxml 源码中找到证据,完美解决上面推导、

 1 const TiXmlElement* TiXmlNode::FirstChildElement( const char * _value ) const 2 { 3 const TiXmlNode* node; 4  5 for (  node = FirstChild( _value ); 6     node; 7     node = node->NextSibling( _value ) ) 8 { 9   if ( node->ToElement() )10   return node->ToElement();11 }12   return 0;13 }14 15