在C++中,你可以通过在类中定义一个名为operator
的成员函数来重载类型转换运算符
#include <iostream>
class Fraction {
public:
Fraction(int numerator = 0, int denominator = 1)
: numerator_(numerator), denominator_(denominator) {}
// 重载类型转换运算符为int
operator int() const {
return numerator_ / static_cast<double>(denominator_);
}
private:
int numerator_;
int denominator_;
};
int main() {
Fraction frac(4, 2);
int result = static_cast<int>(frac); // 使用重载的类型转换运算符
std::cout << "The result is: " << result << std::endl; // 输出:The result is: 2
return 0;
}
在这个例子中,我们定义了一个名为Fraction
的类,它表示一个分数。我们重载了类型转换运算符operator int()
,使得Fraction
对象可以隐式转换为int
类型。在转换过程中,我们将分子除以分母得到一个浮点数,然后将浮点数转换为整数。
注意,当重载类型转换运算符时,最好将其声明为const
成员函数,因为它不会修改对象的状态。