C++ 错误:ISO C++;禁止声明';参考';没有类型
我收到了这个错误。代码如下: 我已经在我的代码中集成了vmime库。现在我需要根据需要在这里实现带有特定超时条目30秒的超时处理程序,以便实现这部分代码C++ 错误:ISO C++;禁止声明';参考';没有类型,c++,compiler-errors,vmime,C++,Compiler Errors,Vmime,我收到了这个错误。代码如下: 我已经在我的代码中集成了vmime库。现在我需要根据需要在这里实现带有特定超时条目30秒的超时处理程序,以便实现这部分代码 class myTimeoutHandler : public vmime :: net :: timeoutHandler { public: bool isTimeOut() { return(getTime()>=m_last + 30); } void resetTimeO
class myTimeoutHandler : public vmime :: net :: timeoutHandler {
public:
bool isTimeOut()
{
return(getTime()>=m_last + 30);
}
void resetTimeOut()
{
m_last = getTime();
}
bool handleTimeOut()
{
logMsg(DEBUG,2,"Connection Timed Out!");
return true;
}
private:
const unsigned int getTime() const
{
return vmime::platform::getHandler()->getUnixTime();
}
unsigned int m_last;
};
class myTimeoutHandlerFactory : public vmime::net::timeoutHandlerFactory
{
public:
ref <timeoutHandler> create ()
{
return vmime::create <myTimeoutHandler>();
}
};
有人能帮忙吗?谢谢
编辑:
我这样调用我的.C文件中的这部分代码
tr->setTimeoutHandlerFactory(vmime::create <myTimeoutHandlerFactory>());
tr->setTimeoutHandlerFactory(vmime::create());
看起来您没有名为timeoutHandler
的类型,但您有一个名为myTimeoutHandler
的类型。也许你的意思是:
vmime::ref<myTimeoutHandler>
应该是
vmime::ref
?不,仔细看看myTimeoutHandler
vs.timeoutHandler
。哦,太感谢你了。我太傻了。好吧,这只是一个猜测,但我会把它作为一个答案。一个小小的疑问,我们不能在那里使用父类ref,因为我继承了它。类myTimeoutHandler:公共vmime::net::timeoutHandler@user862833您可以执行vmime::ref
,但是我不确定从vmime::create()
的结果进行的转换是否会像您预期的那样工作。我在使用timeoutHandler调用时遇到此错误。Svr.h:158:错误:“virtual vmime::utility::ref mytimeouthandlerfacture::create()”的协变返回类型无效。它是用vmime::ref编译的。非常感谢!你能把这个当作ans吗。
vmime::ref<myTimeoutHandler>
vmime::ref<vmime::net::timeoutHandler>