我有这堂课:
template < typename Service >
class BasicIOObject : public boost::asio::basic_io_object<Service>
{
public:
explicit BasicIOObject(
boost::asio::io_service &io_serviceIn, CString& fileNameIn)
: boost::asio::basic_io_object<Service>(io_serviceIn)
{
this->service.init(this->implementation, fileNameIn);
}
void wait()
{
this->service.wait(this->implementation);
}
template <typename Handler>
void async_wait(Handler handler)
{
this->service.async_wait(this->implementation, handler);
}
void wait_handler(const boost::system::error_code &ec)
{
this->service.async_wait(
this->implementation, boost::bind(&BasicIOObject::wait_handler, this, boost::asio::placeholders::error));
}
};
我无法看到this
指的是什么?我没有找到任何关于boost::asio::basic_io_object
的文档,所以任何帮助都将不胜感激。
由于
好的,我知道this
它引用了当前的实例,但我怎么知道它有一个service
成员?
答案 0 :(得分:2)
查找有关Boost.Asio类型和函数的文档的最佳位置之一是官方文档的reference部分。此页面包含指向类型的链接,例如basic_io_object
。对于basic_io_object
,记录了它具有service
受保护的数据成员:
get_service()
受保护的成员函数service_type
,这是提供给basic_io_object<>
的模板模板参数,必须是IoObjectService类型要求的模型答案 1 :(得分:1)
boost::asio::basic_io_object
有service
个成员和implementation
成员。其中service
的类型为service_type
且实际上是basic_io_object
的模板参数,而implementation_type
的类型为service_type::implementation_type
。