Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/156.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 错误:ISO C++;禁止声明';参考';没有类型_C++_Compiler Errors_Vmime - Fatal编程技术网

C++ 错误:ISO C++;禁止声明';参考';没有类型

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

我收到了这个错误。代码如下: 我已经在我的代码中集成了vmime库。现在我需要根据需要在这里实现带有特定超时条目30秒的超时处理程序,以便实现这部分代码

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>