转换函数(仅限 C++)

您可以定义类的成员函数 (称为 转换函数) ,该类从其类的类型转换为另一指定类型。

转换函数语法

读取语法图跳过可视语法图::operatorconversion_typepointer_operator()constvolatile{function_body}
属于类 X 的转换函数指定从类类型 Xconversion_type指定的类型的转换。 以下代码片段显示了名为 operator int()的转换函数:
class Y {
  int b;
public:
  operator int();
};
Y::operator int() {
  return b;
}
void f(Y obj) {
  int i = int(obj);
  int j = (int)obj;
  int k = i + obj;
}

函数 f(Y) 中的所有三个语句都使用转换函数 Y::operator int()

不能在 conversion_type中声明或定义类,枚举, typedef 名称,函数类型或数组类型。 不能使用转换函数将类型为 A 的对象转换为类型 A,基类 Avoid

转换函数没有自变量,返回类型隐式为转换类型。 可以继承转换函数。 您可以具有虚拟转换函数,但不能具有静态转换函数。