0

升压 v1.54

我最初在一个运行良好的 .cpp 文件中为此编写了我的测试,但是当尝试将它与我的类合并到我的源代码中时,我遇到了以下持续错误:

error: no matching function for call to ‘boost::posix_time::seconds::seconds()’
 Database::Database()

error: no matching function for call to ‘boost::asio::basic_deadline_timer<boost::posix_time::ptime>::basic_deadline_timer()’
 Database::Database()

error: no match for call to ‘(boost::posix_time::seconds) (int)’
     interval(1);  // 1 second

我做了一些阅读,发现我必须在我的构造函数中初始化这些,并尝试这样做,但这并没有解决我的问题。

a.cpp - 数据库构造函数

Database::Database()
{
    interval(1);
    timer(io_service,interval);    
}

class Database
{
public:
    boost::posix_time::seconds interval;
    boost::asio::io_service io_service;
    boost::asio::deadline_timer timer;    
};

编辑 我现在通过将构造函数初始化为列表来解决我的问题:

Database::Database()
    : interval(1), timer(io_service, interval) {};
4

1 回答 1

0

我现在通过将构造函数初始化为一个列表来解决我的问题:

Database::Database()
    : interval(1), timer(io_service, interval) {};
于 2020-04-29T00:55:43.710 回答