0

このような基本的な質問をして申し訳ありませんが、これまでのところ、基本的な締め切りタイマーを使用するためにネットで見たすべての例は、次のようにタイマーを初期化するだけです

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

このタイマーをクラスの一部として宣言するにはどうすればよいですか。次のようなことを試してみると

boost::asio::deadline_timer timer;

では、ioservice オブジェクトをそれに割り当てるにはどうすればよいでしょうか。

timer.ioservice = ioserviceのようなオプションが表示されない

4

1 に答える 1

2

IO サービスへの参照を周囲のクラスのコンストラクターに渡してから、コンストラクターの初期化リストでタイマーを構築する必要があります。

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

private:
    boost::asio::deadline_timer timer;
};
于 2012-08-22T11:10:10.053 に答える