Xerces C++抽象类问题
你好!
我是C++新手,请教一个问题。
在Xerces C代码中,有一些抽象类问题不是很明白。
比如类DOMNode,其中有纯虚函数。该类没有父类,子类不知道有没有。
然后在项目中,直接使用
DOMNode* xmlNode = NULL;
xmlNode->getNodeValue();其中getNodeValue是DOMNode的纯虚函数。
这样运行没有错误。
这样是不是算抽象类实例化呢?
[解决办法]
这样运行不会出错?
运行的时候应该会报错吧
[解决办法]
应该有子类继承 实体化对象吧
[解决办法]
DOMNode* xmlNode = NULL;
xmlNode->getNodeValue();
这里xmlNode是一个NULL值,调用一个NULL值的方法一般是会有错误的。
编译会通过,但是运行时会出错。你检查一下程序是否运行了此句。
[解决办法]
纯虚函数是这样用的么?
不知道这要实现一个什么样的功能。
我记得虚函数一般用于继承派生用的。
虚函数一般是基类不实现,而在派生类中实现这个函数的功能。
估计要看具体什么功能,还要到派生类中去看
[解决办法]
这个和你说的完全不同了。只要使用前赋予了正确的值就没问题了。不可能直接赋值NULL后就调用纯虚函数的。
[解决办法]
你应该是不明白多态吧?
DOMNode* xmlNode = NULL;
if(NULL == (xmlNode = nodeOption->getAttributes()->getNamedItem(Char2XmlCh("name").get())))
{
continue;
}
此处getNamedItem()方法会返回一个变量,而这个变量类型是继承于DOMNode类的,xmlNode此时指向的是这个变量,调用的也是这个变量的方法。如果还不大明白,你可以去看看多态
[解决办法]