Thrift C ++故障编译提供了教程 - 无法在TProcessor上实例化抽象类

时间:2011-05-02 16:21:51

标签: c++ thrift

我正在尝试编译Thrift 0.5.0中给出的示例c ++教程。我按照教程\ README中的说明进行操作,并且能够生成示例计算器代码,没有任何问题。但是当我尝试编译Calculator_server.cpp时,我收到错误:

error C2259: 'tutorial::CalculatorProcessor' : cannot instantiate abstract class due to following members: 
'bool apache::thrift::TProcessor::process(boost::shared_ptr<T>,boost::shared_ptr<T>,void *)' : is abstract with 
[ T=apache::thrift::protocol::TProtocol ]

知道为什么会这样吗?我没有触及TProcessor,它被列为抽象对象。 (注意:我也在使用THRIFT-1031 Apache Patch在VC ++中编译)

2 个答案:

答案 0 :(得分:0)

好吧它是什么,显然bool apache :: thrift :: TProcessor :: process(..)没有在shared :: SharedServiceProcessor中实现

答案 1 :(得分:0)

你得到这个错误的原因是因为你不能创建Abstract Class Aapache::thrift::TProcessor的对象是一个抽象类,这意味着它有纯虚方法,或者在类中直接定义,或者继承自基类。

在你的情况下,显然是后者。

您要做的是实现继承的纯虚方法bool apache::thrift::TProcessor::process(),方法的签名应该完全相同。您将保持基本纯虚方法不变。你的班级仍然是抽象的。因此错误信息。