如何在类定义中声明基本截止时间计时器

时间:2012-08-22 11:05:58

标签: c++ boost boost-asio

很抱歉提出这样一个基本问题,但到目前为止,我在网上看到的使用基本截止时间计时器的所有示例都只是按如下方式初始化计时器

boost::asio::deadline_timer timer(ioservice);

如何将此计时器声明为类的一部分。如果我尝试像

那样的话
boost::asio::deadline_timer timer;

然后我如何将ioservice对象分配给它?

我没有看到像 timer.ioservice = ioservice

这样的选项

1 个答案:

答案 0 :(得分:2)

您必须将对IO服务的引用传递给周围类的构造函数,然后在构造函数初始化列表中构造计时器:

class ClassWithTimer
{
public:
    ClassWithTimer(boost::asio::io_service &io_service)
        : timer(io_service)  // Constructs the timer
        { }

private:
    boost::asio::deadline_timer timer;
};