首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于类型转换的几行代码 看得不太懂解决方案

2012-09-06 
关于类型转换的几行代码 看得不太懂一个解析xml文件的类,里面很多这样的函数定义C/C++ codeconst TiXmlNod

关于类型转换的几行代码 看得不太懂
一个解析xml文件的类,里面很多这样的函数定义

C/C++ code
const TiXmlNode* LastChild( const char * value ) const;            /// The last child of this node matching 'value'. Will be null if there are no children.TiXmlNode* LastChild( const char * _value ) {        return const_cast< TiXmlNode* > ((const_cast< const TiXmlNode* >(this))->LastChild( _value ));    }


定义一个const函数 和一个非const函数的意义是什么,在第二个函数中使用const_cast转换的意义又是什么

[解决办法]
const函数函数,不能修改成员,不能调用类的非const成员函数

 return const_cast< TiXmlNode* > ((const_cast< const TiXmlNode* >(this))->LastChild( _value ));
第二个const_cast是为了调用const修饰的LastChild()
第一个const_cast是把返回的const TiXmlNode*转成TiXmlNode*

为何定义两个,不清楚,可能是需求如此。

热点排行