如何使用类中定义的“operator X()”?

时间:2011-11-04 11:05:20

标签: c++ operators

我对C ++比较陌生,这个宣言让我很困惑:

Service.h:

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

我通过除此处列出的构造函数之外的其他方式创建了ServiceHandle对象。我想让实际的SC_HANDLE传递给ChangeServiceConfig,我该怎么做?我假设它与操作员有关,但我无法弄清楚如何使用它。

2 个答案:

答案 0 :(得分:4)

您只需在表达式ServiceHandle中使用SC_HANDLE类型的对象。您正在谈论的运算符SC_HANDLE的转换运算符。该运算符自动“使用”。

答案 1 :(得分:0)

这是一个铸造操作员。这可以称之为:

ServiceHandle s(some handle);
SC_HANDLE h = (SC_HANDLE)s;