在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
成員函數,因為它不會修改對象的狀態。