我有以下类声明:
class A {
public:
A();
private:
boost::asio::io_service io;
boost::asio::deadline_timer t;
};
下面的类构造函数A
工作正常:
A::A() : t(io) {
// do stuff
}
但是当我写这个时:
A::A() {
t(io);
// do stuff
}
我收到以下错误:
错误:不匹配调用 '(boost::asio::deadline_timer {aka boost::asio::basic_deadline_timer}) (boost::asio::io_service&)
boost::asio::deadline_timer
也许是因为未定义复制构造函数。但是在成员初始化列表的情况下会发生什么?它不使用复制构造函数吗?
关于成员初始化列表中使用的机制与我们在类构造函数中使用赋值/复制构造函数时使用的机制相比,我的问题可能更笼统。