c++ - 如何使用类中定义的 "operator X()"?

标签 c++ operators

我是 C++ 的新手,这个声明让我感到困惑:

服务.h:

class ServiceHandle {
  public:
    ServiceHandle(SC_HANDLE h) : handle(h) {}
    ...
    operator SC_HANDLE() const {return handle;}
  protected:
    SC_HANDLE handle;
};

我已经通过此处列出的构造函数之外的其他方式创建了一个 ServiceHandle 对象。我想让实际的 SC_HANDLE 传递给 ChangeServiceConfig ,我该如何得到它?我假设它与运算符(operator)有关,但我不知道如何使用它。

最佳答案

您只需在期望SC_HANDLE 的表达式中使用ServiceHandle 类型的对象。您所说的运算符SC_HANDLE 的转换运算符。此运算符会自动“使用”。

关于c++ - 如何使用类中定义的 "operator X()"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8008291/

相关文章:

c++ - 将 ASCII 值直接转换为文字整数值

c++ - 如何在VS2013中使用内联版本的memcpy?

c - C中的后增量概念

c++ - std::setw、std::setfill 等的真正返回类型是什么?

c++ - QT OpenSource,5.12.1,默认安装不产生 qtmainid.lib

Python:使用列表中的运算符进行数学运算

c++ - 类不支持运算符

java - 在 Hibernate QL 中否定一元运算符

r - R 线性建模中 ":"和 "|"之间的区别

C++ 解释将 uint64 转换为 uint32