为什么编译器(g++)会抱怨这行代码?
XalanNode *docElement = static_cast<XalanNode*> (docBuilder_->getDocument()->getDocumentElement());
我从编译器得到的错误是:
错误:从类型“amxalanc_1_6::XalanElement*”到类型“amxalanc_1_6::XalanNode*”的静态转换无效
如果没有 static_cast,编译器会打印:
错误:无法在初始化中将 `amxalanc_1_6::XalanElement*' 转换为 `amxalanc_1_6::XalanNode*'
XalanElement 类定义为:
class XALAN_DOM_EXPORT XalanElement : public XalanNode
该文档还显示 XalanNode 应该从 XalanElement 派生,如您在此处所见 - XalanElement Class Reference。
在 XalanDocument.hpp 中,getDocumentElement() 的方法签名是:
virtual XalanElement* getDocumentElement() const = 0;