gpt4 book ai didi

c++ - Xerces C++ SAX 解析问题 : expected class-name before '{' token

转载 作者:行者123 更新时间:2023-11-28 03:58:04 27 4
gpt4 key购买 nike

我正在尝试运行为 C++ Xerces XML 库实现提供的示例。我已经准确地复制了代码,但是我在编译它时遇到了问题。

error: expected class-name before '{' token

我四处寻找解决方案,我知道这个错误可能是由循环包含或在使用前未定义类引起的,但正如您从代码中看到的那样,我只有 2 个文件:MySAXHandler .hpp 和 MySAXHandler.cpp。但是,MySAXHandler 类派生自包含在内的 HandlerBase。

MyHandler.hpp

#include <xercesc/sax/HandlerBase.hpp>

class MySAXHandler : public HandlerBase {
public:
void startElement(const XMLCh* const, AttributeList&);
void fatalError(const SAXParseException&);
};

MySAXHandler.cpp

#include "MySAXHandler.hpp"
#include <iostream>

using namespace std;

MySAXHandler::MySAXHandler()
{
}

void MySAXHandler::startElement(const XMLCh* const name,
AttributeList& attributes)
{
char* message = XMLString::transcode(name);
cout << "I saw element: "<< message << endl;
XMLString::release(&message);
}

void MySAXHandler::fatalError(const SAXParseException& exception)
{
char* message = XMLString::transcode(exception.getMessage());
cout << "Fatal Error: " << message
<< " at line: " << exception.getLineNumber()
<< endl;
XMLString::release(&message);
}

我是这样编译的:

g++ -L/usr/local/lib -lxerces-c -I/usr/local/include -c MySAXHandler.cpp 

我看过HandlerBase,是有定义的,不知道为什么不能从中派生出类?我是否必须覆盖 HandlerBase 中的所有虚函数?我对 C++ 有点陌生。

提前致谢。

最佳答案

尝试添加 using namespace xercesc; 或明确指定 Xerces 类的命名空间(例如 xercesc::HandlerBase)。

编辑:还有 XERCES_CPP_NAMESPACE_USE 宏,它应该等同于 using 语句。

关于c++ - Xerces C++ SAX 解析问题 : expected class-name before '{' token,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2540246/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com