类类型转换函数
时间: 2023-12-03 08:46:24 浏览: 84
类类型转换函数是一种特殊的成员函数,它可以将一个类的对象转换为另一个类型。它的语法为:
```
operator type() const;
```
其中,`type` 是要转换为的目标类型。该函数必须是类的成员函数,不能有返回值,但必须返回目标类型的对象。它通常被用于将一个自定义的类型转换为基本类型或其他类类型。
例如,假设有一个名为 `Fraction` 的类,它表示分数,其中包含分子和分母。我们可以定义一个类类型转换函数,将 `Fraction` 类型转换为 `double` 类型,如下所示:
```c++
class Fraction {
public:
Fraction(int n, int d) : num(n), den(d) {}
operator double() const {
return static_cast<double>(num) / den;
}
private:
int num, den;
};
int main() {
Fraction f(3, 4);
double d = f; // 调用 Fraction::operator double(),将 f 转换为 double 类型
std::cout << d << std::endl; // 输出 0.75
return 0;
}
```
在上面的例子中,我们定义了一个类类型转换函数 `operator double()`,它将 `Fraction` 类型转换为 `double` 类型。在 `main()` 函数中,我们创建了一个 `Fraction` 对象 `f`,然后将其转换为 `double` 类型并将结果赋值给变量 `d`,最后输出 `d` 的值。
阅读全文