c++ - 我如何知道继承 boost::asio::basic_io_object 的类中的 this 成员?

标签 c++ boost

我有这门课:

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 成员呢?

最佳答案

寻找关于 Boost.Asio 类型和函数的文档的最佳位置之一是官方文档的 reference部分 。此页面包含指向类型的链接,例如 basic_io_object .对于 basic_io_object , 据记载它有一个 service protected 数据成员:

  • 已弃用,并建议使用 get_service() protected 成员函数
  • 仅适用于不支持移动性的服务
  • 的类型为 service_type ,这是提供给basic_io_object<>的模板模板参数那一定是 IoObjectService 的模型类型要求

关于c++ - 我如何知道继承 boost::asio::basic_io_object 的类中的 this 成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28629704/

相关文章:

c++ - 用更大的 vector 覆盖 vector 的最有效方法

c++ - 如何使用 sfinae 选择构造函数?

c++ - 使用cmake和vs2010链接到静态boost lib而不自动链接

c++ - 无法使 MySQL 连接器/C++ 工作 - 未处理的异常 (sql::SQLException) Visual Studio 2010

c++ - C++初始化后的神秘数组值

c++ - 在文本框中使用 WM_CHAR 输入处理的 gobbledygook

Java JNI JAWT 错误未解析的外部符号 __imp__JAWT_GetAWT@8

c++ - firebreath 中的 IPC (boost c++)

c++ - boost mapped_file_source、对齐方式和页面大小

c++ - 无法弄清楚竞争条件发生在哪里